1.let和const
跟var用法一样,都是声明一个变量。
区别:
1.let仅在块级作用域内有效。
2.let不存在变量提升。必须先声明,后使用。
3.let/const存在暂时性死区,ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。如下图:
var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError let tmp;
}
4.let不允许在相同作用域内,重复声明同一个变量。
5.let实际上为 JavaScript 新增了块级作用域,匿名立即执行函数表达式(匿名 IIFE)不再必要了。
6.
网友评论