JavaScript变量提升机制如何通过示例详细解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1801个文字,预计阅读时间需要8分钟。
变量提升+JavaScript的变量提升有两种,使用var声明的变量和使用function声明的变量。使用var声明的变量+我们先来看下面这段代码,a的值是多少?+console.log(a);+var a;+按照以往编程语言的思维,我们可能会认为a的值是undefined,但实际上并非如此。
变量提升
JavaScript的变量提升有两种,用var声明的变量以及用function声明的变量。
用var声明的变量
我们先来看下面这段代码,a的值是多少
代码1
console.log(a); var a;
按照以往编程语言的思路来看,代码自上而下运行,按这种思路,会报错,因为执行到第2行时,变量a还没有定义,所以会报错a is not defined
然而事实上答案是undefined
好,抱着疑惑,我们看下面的代码
var a; console.log(a);
我们发现,这两段代码是一样的,那么又有一个新的问题,是不是有没有var a都无所谓,它的答案始终是undefined,才造成了以为变量会提升的错觉,于是我写了代码3
代码3
console.log(a);
好,它终于报错了,所以这证明了javaScript代码并不是自上而下执行的,至少从表面看上面是这样的。
本文共计1801个文字,预计阅读时间需要8分钟。
变量提升+JavaScript的变量提升有两种,使用var声明的变量和使用function声明的变量。使用var声明的变量+我们先来看下面这段代码,a的值是多少?+console.log(a);+var a;+按照以往编程语言的思维,我们可能会认为a的值是undefined,但实际上并非如此。
变量提升
JavaScript的变量提升有两种,用var声明的变量以及用function声明的变量。
用var声明的变量
我们先来看下面这段代码,a的值是多少
代码1
console.log(a); var a;
按照以往编程语言的思路来看,代码自上而下运行,按这种思路,会报错,因为执行到第2行时,变量a还没有定义,所以会报错a is not defined
然而事实上答案是undefined
好,抱着疑惑,我们看下面的代码
var a; console.log(a);
我们发现,这两段代码是一样的,那么又有一个新的问题,是不是有没有var a都无所谓,它的答案始终是undefined,才造成了以为变量会提升的错觉,于是我写了代码3
代码3
console.log(a);
好,它终于报错了,所以这证明了javaScript代码并不是自上而下执行的,至少从表面看上面是这样的。

