变量提升

var v='Hello World';
(function(){
    alert(v);
    var v='I love you';
})()

看下结果:


image.png

解释:JavaScript中的变量提升(Hoisting)

实际可以理解为:

var v='Hello World';
(function(){
    var v;
    alert(v);
    v='I love you';
})()

涉及到 js的作用域(块级作用域)的原理,不做赘述。

函数提升

function myTest(){
    foo();
    function foo(){
        alert("我来自 foo");
    }
}
myTest();
image.png
function myTest(){
    foo();
   var foo =function foo(){
        alert("我来自 foo");
    }
}
myTest();
image.png

解释:
在我们写js code 的时候,我们有2中写法,一种是函数表达式,另外一种是函数声明方式。我们需要重点注意的是,只有函数声明形式才能被提升。

参考资料:https://www.cnblogs.com/damonlan/archive/2012/07/01/2553425.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容