var v='Hello World';
(function(){
alert(v);
var v='I love you';
})()
看下结果:
解释:JavaScript中的变量提升(Hoisting)
实际可以理解为:
var v='Hello World';
(function(){
var v;
alert(v);
v='I love you';
})()
涉及到 js的作用域(块级作用域)的原理,不做赘述。
函数提升
function myTest(){
foo();
function foo(){
alert("我来自 foo");
}
}
myTest();
function myTest(){
foo();
var foo =function foo(){
alert("我来自 foo");
}
}
myTest();
解释:
在我们写js code 的时候,我们有2中写法,一种是函数表达式,另外一种是函数声明方式。我们需要重点注意的是,只有函数声明形式才能被提升。
参考资料:https://www.cnblogs.com/damonlan/archive/2012/07/01/2553425.html