变量提升
即变量可以在声明之前使用,值为 undefined ,如 var 这种使用方式虽然不报错,但它是错误的,根据代码规范我们必须要在变量声明后使用。
在ES6中严格规定了这点
let 和 const 所声明的变量一定要在声明后使用,否则报错。
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;

// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;

- 通过var定义(声明)的变量,在定义语句之前就可以访问到;
-
值:undefined;
-
console.log(a); //undefined var a = 1; -
因为有变量提升的缘故,上面代码实际的执行顺序为:
-
var a; console.log(a); a = 1;
-
将变量声明提升到它所在作用域的最开始的部分。

在JavaScript中,var声明的变量会发生变量提升,允许在声明前使用,值为undefined。然而,ES6引入的let和const则不允许这种情况,提前使用会抛出ReferenceError。这强调了变量必须在声明后使用,提高了代码的规范性。
1076

被折叠的 条评论
为什么被折叠?



