js变量提升

变量提升

JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升

我们写了一个赋值语句

var a = 2;

实际上执行过程是解释器在未执行的时候先解析出变量声明,然后给他初始值undefined,然后才逐句执行程序

var a;
a = 2;

这样看起来没什么区别,但是在多语句的情况下会有差别,我们知道一个变量如果不存在我们就使用会报错

console.log(xxx); // Uncaught ReferenceError: xxx is not defined
我们在使用一个变量之前必须声明变量,但是由于变量提升,我们如果声明了变量,即使在声明语句前使用也是可以的,只不过其值是初始值undefined

console.log(xxx); // undefined
var xxx = 2;

文章目录
  1. 1. 变量提升
,