es6的新特性
1,const,let
const / let / var有什么不同
var与const和let的不同点
1.var 有变量提升,而const与let也存在变量提升,但由于暂时性死区导致在初始化前(暂时性死区:声明并初始化)没办法调用
2.let与const有块级作用域,何为块级作用域,可以理解为{} 的内容为块级,在此范围内定义的内容,只能在该范围使用,根据这个理念可以解决for循环参数问题
3.const定义的是常数不能重新定义,也不能重新赋值;let可以重新赋值,但不能重新定义;var可以重新定义,也能重新赋值
2.模板字变量
let a=10 let b=`我有${a*20}元` console.log(b)//我有200元
3.箭头函数
箭头函数与普通函数的不同点在于,箭头函数的this指向父级的上下级绑定(可以理解为,作用域)
例如
var aaa={ id:666, show1:function(){ console.log(this.id) }, show2:()=>{ console.log(this.id) } } aaa.show1()// 666 aaa.show2()//undefined
show2的this指向了执行作用域window,window没有id返回undefined
4.对象和数组解构
let [a,b,c]=[1,2,3] console.log(a,b,c)///1 2 3 let {aa,bb,cc}={ aa:555, bb:666, cc:777 } console.log(aa,bb,cc)///555 666 777
5.for...of 和 for...in
a for…in是遍历数组、对象的key
b for…of是遍历数组的value
let a=['a','b','c'] for(let i in a){ console.log(i) } //0 //1 //2 //显示的是key let a=['a','b','c'] for(let i of a){ console.log(i) } //a //b //c //显示的是value