js的坑

1.函数声明变量提升

函数声明变量提升
其中有个例子

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

结果是undefined.
这是为什么呢?
这应该从js解释器开始解释,js解释器会默认把所有的变量声明都提升,所以上述代码可以看成这样:

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

你可能感兴趣的:(js的坑)