从2015年的ES6开始,JavaScript的语言标准每年都在更新,其中尤其以ES6的力度之大,到现在ES10已经发布,这里总结一下新语法。
参考: 、ECMAScript 6入门 、
声明变量const 块级作用域,变量被const声明后不允许改变,通常在声明时定义
let 块级作用域
注意点:
变量提升: var存在变量提升,const、let不存在变量提升,意思是:var声明的变量在声明之前可以访问,访问到的值为undefined;const、let声明的变量在声明之前不可以访问,如果访问直接报错。 暂时性死区: var tmp = 123; if (true) { tmp = 'abc'; // ReferenceError let tmp; } 看上面这段代码,if内的第一行会报错。ES6明确规定,如果区块中存在let和const命令,这个区块对这些命声明的变量,从一开始就形成了封闭的作用域。凡是在声明之前就是用这些变量,就会报错。在语法上称为“暂时性死区”