关于变量的定义、声明方式、赋值这里就不介绍了,主要说说javascript 中变量的提升。
初识变量提升
![](https://img.haomeiwen.com/i9890754/a4e30298a32975dc.png)
这里输出hello,应该是意料之中的,接下来看这个例子,猜猜会输出什么?
![](https://img.haomeiwen.com/i9890754/438947ce2613bb4e.png)
也许有人说会输出hello,但真实的结果是输出undefined。为什么呢?这就是javascript变量提升的魔力。
剖析变量提升
变量提升就是把本来在后边的东西提前到前边。变量提升只会提升变量的声明,不会提升变量的赋值。 上边输出b之所以报错,是因为变量提升和块级作用域的原因,上边的代码就相当于
![](https://img.haomeiwen.com/i9890754/9b4760308174f235.png)
所以输出undefined
网友评论