JavaScript之变量提升
程序员文章站
2022-04-04 22:55:14
...
JavaScript之变量提升
JavaScript 变量提升
在JavaScritp中,函数和变量的声明都将被提升到函数的最顶部。
在JavaScript中,变量可以在使用后声明,也就是变量可以先使用在声明。
console.log(x);// undefined
var x;
console.log(x);// undefined
结果显示:无论var
变量声明处于顶部或尾部,它都会被提升到最顶部。
x=5; // ReferenceError:x is not defined
console.log(x);
因未声明变量x,故变量赋值报错。
x=5;
console.log(x);// 5
var x;
而在尾部声明了变量x后,却可在顶部给变量x赋值。
JavaScript 初始化不会提升
JavaScript 只有声明的变量会提升,初始化的不会提升。
console.log(x);// undefined
var x=5;
console.log(x);// 5
因JavaScript的变量提升,故第一个打印显示为undefined
,接下来对变量的赋值/初始化并没有提升,因此第二个打印显示为5
。
避免变量提升
- 在作用域开始前声明变量:易于理解
- ES6的let和const命令不会有变量提升