JavaScript变量声明提升以及函数提升

先从变量声明提升说起,变量的声明在其作用域内会被提升到最顶端,无论变量在作用域内的何处声明都是一样效果。看实例:

?View Code JAVASCRIPT
(function inner() {
    console.log(v);
    var v = 3;
}())

会输出什么呢?答案是”undefined”。有些人也会认为是”undefined”,但是他们可能觉得是这样的,js代码从上向下加载读取,当读取到console这行的时候还没见到下面的var v = 3 这行,所以理当是”undefined”。其实这样是不对的想法。参照我之前说的变量声明,这段代码在解释运行的时候其实是这样的: 继续阅读JavaScript变量声明提升以及函数提升