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

 

es6的新特性

上一篇:eventfd


下一篇:Jakson反序列化XML异常