前端小白简单总结,还望各位大佬多多指教~
let声明变量特点
1、用来声明块级作用域
let声明的变量只在其块级作用域内有效,而var通常在函数作用域或全局作用域内有效
块级作用域:指用花括号{ }包裹起来形成的语句块,如if、for、while循环语句等。
if(true){
let a = 111;
console.log(a); // 111
}
console.log(a); // a is not defined
对比var
if(true){
var a = 111;
console.log(a); // 111
}
console.log(a); // 111
2、没有变量提升
let声明的变量必须在声明后才能使用
// let
console.log(a); // Cannot access 'a' before initialization
let a = 111;
console.log(a); // 111
对比var
// var
console.log(a); // undefined
var a = 111; // 111
console.log(a); // 111
// 上面的代码相当于
var a;
console.log(a);
a = 111;
3、不允许重复声明
let声明的变量不允许重复声明
let a = 111;
let a = 222; // let不可重复声明 Identifier 'a' has already been declared
对比var
var a = 111;
var a = 222;
console.log(a); // 222