let 不允许重声明。当 let 声明 a 时,再次声明将导致重复声明错误
Uncaught SyntaxError: Identifier '' has already been declared
错误的
- (function ts(){
- let a = 111;
- let a = 222;
- console.log(a);
- })();
同样的,由于 let 是块级作用,var 是全局作用,会导致提权问题。在函数作用于内,如果 let 声明了,在内部用 var 将同样导致 导致重复声明错误
Uncaught SyntaxError: Identifier '' has already been declared
错误的
- (function ts(){
- let a = 111;
- if (true) {
- var a = 222;
- }
- console.log(a);
- })();
改用 let 在子级块中,将不会导致这个错误。
正确的
- (function ts(){
- let a = 111;
- if (true) {
- let a = 222;
- }
- console.log(a);
- })();
未完待续
评论 (0)