ES6 的let,var,const的一些理解

来源:互联网 发布:今年双十一淘宝成交额 编辑:程序博客网 时间:2024/05/18 21:05

let声明的是一个常量,必须在创建的时候就赋值,否则报错。赋值后不可更改,但如果声明的let是一个对象,对于let对象的内在元素则是可以修改的。

var 声明的是一个变量,但作用域会不同:

var a = [];for (var i = 0; i < 10; i++) {  a[i] = function () {    console.log(i);  };}a[6](); // 10

上面代码中,变量ivar声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组afunction在运行时,会通过闭包读到这同一个变量i,导致最后输出的是最后一轮的i的值,也就是10。

const声明的是一个只读的常量。一旦声明,常量的值就不能改变。const的作用域与let命令相同:只在声明所在的块级作用域内有效。


ES6文档链接:http://es6.ruanyifeng.com/#docs/let

原创粉丝点击