ECMAScript 6 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中绝大多数的特性。
1.let
let 允许创建块级作用域,ES6 推荐在函数中使用 let 定义变量,而非 var:
let是块级作用域(在一对{} 里面起作用)
{
let a =15;
console.log(a)
}
let不能重复声明;
2.const
1 声明必须赋值
2 建议变量名用大写
3 声明后不能再次声明
3.结构
数组的解构
示例:
var arr1 = [2,4,6,7,8];
var [a,b,c,d,e] = arr1;
alert(a)
console.log("结构出来的变量a"+a); //2
console.log("结构出来的变量b"+b); //4
console.log("结构出来的变量c"+c); //6
console.log("结构出来的变量d"+d); //7
console.log("结构出来的变量e"+e); //8
嵌套
var arr2 = [1,2,[3,4,5]];
let [a,b,[c,d,e]] = arr2;
console.log("结构出来的变量a"+a); //1
console.log("结构出来的变量b"+b); //2
console.log("结构出来的变量c"+c); //3
console.log("结构出来的变量d"+d); //4
console.log("结构出来的变量e"+e); //5
剩余值运算符... 后面的所有内容都给了c
var arr4 = [1,2,3,4,5];
let[a,b,...c] = arr4;
console.log('a'+a); //1
console.log('b'+b); //2
console.log('c'+c); //3,4,5
解构字符串
let [a,b,c,d]="武汉加油";
console.log("结构出来的变量a"+a); //武
console.log("结构出来的变量b"+b); //汉
console.log("结构出来的变量c"+c); //加
console.log("结构出来的变量d"+d); //油
默认值
let [a,b,c=15]=[20,18];
console.log("结构出来的变量a"+a); //20
console.log("结构出来的变量b"+b); //18
console.log("结构出来的变量c"+c); //15
c如果后面定义100 那么默认15会被顶替
7.不用第三个变量 来交换变量值
3.对象解析
解析就是把数组或对象内容解析出单独的变量
对象解析
let {name,age} = {name:"mumu",age:18}
console.log(name);
console.log(age);
let{name:foo}={name:"mumu"};
console.log('foo:'+foo);
var obj = {name:"mumu",age:19,let:2,eve:2}
let{name,age,...rest} = obj;
console.log(name); mumu
console.log(age); //19
console.log(rest); 剩余的变成新的对象 rest:{let:2,eve:2}
4.扩展
ES5新增方法
repeat()重复几次
includes(s) 布尔值解析 查找字符串中是否有s
是否以s开头startsWith(s)
是否是s结尾 endsWith(s)
5.ES6数字
数字 ES6
Number.isInteger 是否是整数
Number.isNaN()是否是 not a number//NaN的时候是true
2**3 2的三次方
Number.isFinite 是否无穷
var num = 12;
console.log(Number.isNaN(123));
console.log(Number.isFinite(NaN));
5.箭头函数
箭头函数就是函数的简写
=>前面是函数参数
=>后面是函数参数
如果函数只有一个可以省略括号()
如果函数体有多条语句 用{}
如果返回是一个对象则返回内容用()包裹
箭头函数this指向
seInterval是用来设置定时执行的, 是省略window的前缀
谁调用函数 谁是this
setinterval setTimeout this指向window
期待this指向obj 箭头函数this指向上一层作用域的this
数组扩展 就是把数组扩展为单个参数 (在调用参数时使用)
function metting(a,b,c,d){
alert("今天开会的有"+a+b+c+d)
}
var arr = ["老曾","小曾","小小曾","mini曾"]
metting(...arr);