首页 > 代码库 > ES6(一)

ES6(一)

来自:http://h5monkey.github.io/2015/05/09/ES6%EF%BC%88%E4%B8%80%EF%BC%89/

 

基本语法
let是块级作用域,函数内部使用let定义后,对函数外部无影响。

// 错误写法 变量提升不可以console.log(b);let b = 3;// 错误写法 变量不可重复赋值let a = 4;let a = 5console.log(a)

 





var btns = document.querySelectorAll("button"); for (var i = 0; i < btns.length; i++) { btns[i].onclick = function() { console.log(i) //永远等于i=5 } } //改变 for (var i = 0; i < btns.length; i++) { btns[i].index = i; btns[i].onclick = function() { console.log(this.index) } } //改变 for (var i = 0; i < btns.length; i++) { (function(i) { btns[i].onclick = function() { console.log(i) } })(i); } //改变 for (let i = 0; i < btns.length; i++) { btns[i].onclick = function() { console.log(i) //let创建出作用域块 } }

const定义的变量不可以修改,而且必须初始化。

  //在循环语句之内是一个父作用域,在循环体中是一个子作用域    //例子:    for (let i = 0; i < 3; i++) {    let i = 10;    console.log(i);    }    console.log(i)
 //const声明属性的时候必须赋值    var a;    let b;    const c; //报错        //改变常量的数据    const a = 10;    a = {}; //浏览器会报错  改变数据    const a = {    obj: 10    };    a.obj = 20; //不会报错  只是修改对象数据  没有改变obj的引用

ES6(一)