之前和一个同事做一个项目的时候遇到了一个变量提升的问题,明明已经定义了但是会弹出undefined.后来查了一下,因为是变量提升的原因才导致的。
var V="Hello World";
(function(){
alert(V);
var V="111"
})()这个时候你会弹出一个undefined,按照我们本来的思路应该是弹出一个Hello World或者111,和undefined是完成不沾边的。
当我们把函数改成这个样子的时候
var V="Hello World";
(function(){
var V="111"
alert(V);
})()var V="Hello World";
(function(){
var V;
alert(V);
V="111"
})()所以以后我们以后定义变量以及值最好是定义在作用域的顶端。这样会避免一些不必要的错误。
原文:http://blog.csdn.net/u011551941/article/details/45095119