首页 > 编程语言 > 详细

JavaScript基础

时间:2020-11-15 23:04:21      阅读:37      评论:0      收藏:0      [点我收藏+]

JavaScript

一. 基础部分

  1. 执行过程(JS引擎)
Ⅰ 预解析
Ⅱ 代码执行
   预解析:JS引擎会把JS里所有的var、function提升到作用域的最前面
   预解析又分为:
	Ⅰ 变量预解析(变量提升)[其中:变量提升就是把所有的变量声明提升到当前作用域的最前面,而不提升赋值操作]
	Ⅱ 函数预解析(函数提升)
    eg: console.log(num); // undefined
    var num = 10;
    执行过程:1.var num;
			 2. console.log(num);
			 3.num = 10;

注意:函数体内部的变量没有用var声明的是全局变量。
声明多个值相等的变量可以安照如下简写

var a = 9; 
var b = 9;
var c = 9;
====> 
var a = b = c = 9;
  1. 创建JavaScript对象的三种方式
A. 字面量方式 

var obj = {}; // 创建一个空对象
var userObj = {
	name: ‘Tom‘,
	age: 18,
	gender: ‘男‘,
	sayHi: function(){
		console.log(‘Hi‘);
	}
}

注意:属性和方法都是采用键值对的形式
调用属性:a.对象名.属性名 b.对象名[‘属性名‘]
调用方法:对象名.方法名()
B.利用 new Object() 创建

var obj = new Object();
    obj.name = ‘Tom‘;
	obj.age = 18;
	obj.sayHi = function(){};
C.构造函数来创建

function Star(name, age, gender){
	this.name = name;
	this.age = age;
	this.sex = sex;
}
var Tom = new Star(‘Tom‘, 18, ‘男‘);
注意:a. 构造函数第一个单词必须大小
      b. 调用构造函数必须用new
	  c. 调用构造函数后会自动返回一个对象(不需要再构造函数中写return)
拓展:构造函数类似Java中的类,将对象中的公共属性和方法抽取出来

遍历对象的方法 for ... in
for(var k in obj){
	console.log(k+‘--‘+obj[k]); // 属性名--属性值
}
  1. 常用的函数
A.日期函数
	1.旧方式
	var date = +new Date() ==> 返回当前的毫秒数(时间戳)
		date.valueof();
		date.getTime();
	2.新方式
	Date.new();  (H5新增方法)

	应用:倒计时算法(时间戳的差值)

B. 数组函数

a. 判断数组是否是数组的方法
①arr instanceof Array
②Array.isArray(arr) ==> IE9以上才支持

b. 添加数组元素的方法
① push:再数组末尾添加一个或多个元素,返回结果为新数组的长度(参数为添加的元素)
② unshift:在数组前面追加一个或多个元素
(参数为添加的元素)

c. 删除数组元素
① pop:删除最后一个元素,一次只能删除一个元素(无参数),返回值为删除的那个元素
② shift:删除第一个元素,返回删除的元素(无参数)

数组转换为字符串的方法
① toString()
② join() 参数可选,分隔符(表示数组每个元素之间的分隔符号,示例如下)

eg: var strArr = {‘a‘,‘b‘,‘c‘};
strArr.join(‘-‘); // ‘a-b-c‘

C.其他函数

①concant() 连接多个数组,不影响原数组
②slice() 数组截取 slice(begin, end),生成被截取的新数组
③splice() 数组删除 splice(begin, end),返回被删除项目的数组,会影响原数组

  1. 赋值的底层原理

A.基本数据类型赋值
var a = 1; var b = a;
技术分享图片
在栈中重新开辟了一个空间,并把值复制了一份,两个变量互不影响

JavaScript基础

原文:https://www.cnblogs.com/Song-rui/p/13982772.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!