JavaScript中变量提升------Hoisting
前言 因为我在写这文章的时候,百度里找资料,找到了园友的一篇文章,写的很好,可是我写了又不想放弃,所以就在里面拿了很多东西过来!~~ [翻译]JavaScript Scoping and Hoisting 希望得到大家谅解。 因为这个问题很是经典,而且容易出错,所以在介绍一次。哈哈。莫怪哦。 一。案发现场 我们先看一段很简单的代码: var v='Hello World'; alert(v); 这个没有疑问吧,弹出“Hello World”。OK,我们继续。 我们在看一段Code: var v='Hello World'; (function(){ alert(v); })() 经过运行之后,我们发现,还是和我们预期的一样,弹出了“Hello World”。 好了,有意思的来了。接着在看一段下面的代码: var v='Hello World'; (function(){ alert(v); var v='I love you'; })() 如果这个是一个面试题,面试官问你这个结果是多少?你怎么回答? 我们先看结果吧! 结果是 undefined?和你上面自己想的一样吗? 好吧,我就不故弄玄虚了。其实,这里面隐藏了一个陷阱-----JavaScript中的变量提升(Hoisting); 二。深度剖析 现在我来解释下提升是什么意思?顾名思义,就是把下面的东西提到上面。在JS中