Javascript云寻咋函数的任何地方声明变量,无论在哪里声明,效果都等同于在函数顶部声明。这就是所谓的变量提升。
当使用变量之后,再在后面声明改变量,可能就会出现逻辑错误。
//反模式
myname = "global";
function func (){
alert(myname);//未定义
var myname = "local";
alert(myname);//局部变量
}
//-----------------------------------------//
myname = "global";
function func (){
var myname;// 等同于 var myname = undefined;
alert(myname);//未定义
myname = "local";
alert(myname);//局部变量
}
该函数效果与上面的函数效果一样