这篇文章想帮助大家深入理解JavaScript语言的核心概念和 JavaScript引擎的工作原理。Hoisting(提升)是JavaScript最基础的知识,但是具体的过程却不是很容易讲明白。今天就和大家一起了解一下Hoisting。
![bf38fbe22569dabdaf2e6363a005493f.png](https://img-blog.csdnimg.cn/img_convert/bf38fbe22569dabdaf2e6363a005493f.png)
举两个例子
很多人都知道Javascript 程序在执行时是从上到下逐行解释执行的,但是真的是这样吗? 让我们来看看这段代码:
age = 10;var age;console.log( age );
控制台应该输出什么?
A: 10 B: undefined
控制台将输出10。
让我们来看看另一个例子:
console.log( boys );var boys = 20;
你认为这次控制台将输出什么? 可能有些人会认为输出是 Error: ReferenceError,因为变量 boys 在声明之前就已经被使用了。 不幸的是,这种假设是不正确的。 正确的输出将是 undefined。
为什么会出现上面的结果呢?