JavaScript变量声明提升
1 console.log(a); 2 var a=10;
控制台打印undefined,在ES2015之前,JavaScript只有全局作用域和函数作用域。在全局作用域中声明变量,变量声明被提升,但是变量赋值未被提升。
1 function letTest() { 2 let x = 1; 3 if (true) { 4 let x = 2; // 不同的变量 5 console.log(x); // 2 6 } 7 console.log(x); // 1 8 }
let允许你声明一个作用域被限制在块级中的变量、语句或者表达式。与var关键字不同的是,var声明的变量只能是全局或者整个函数块的。