es6的let和const

let声明变量(来w3cscholl)

  1. let声明变量不会进行预解释(不存在变量提升);
  2. 不允许重复声明
  3. 块级作用域
    • {code} -》代码块
  4. 暂时性死区(TDZ):只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。
  5. let声明的并不等价于window的一个全局属性

    const 声明一个只读的常量

  6. 定义后不可以修改
  7. 同let一样,也会产生一个块级作用域
  8. 不存在变量提升

    解构赋值:把数组和对象中的值取出,赋给变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // var a = 1;
    // var b = 2;
    //var c = 3;
    //ES6允许写成下面这样。
    var [a, b, c] = [1, 2, 3];
    //交换赋值:
    [a,b,c]=[c,a,b];
    //a->3
    //b->1
    //c->2

数组的一些新方法

  1. Array.from(obj) ->
  2. Array.of()创建一个数组的实例
  3. 遍历
    1
    2
    3
    4
    5
    var arr=[5,5]
    for(var [key,value] of arr.entries()){
    console.log(key+":"+value)
    }

将类数组转化为数组

  1. let newArr=[…divs];
    1
    2
    3
    var arr=[1,2,3,4,5];
    let[aa,...reset]=arr;
    reset -> [2,3,4,5]