Javascript本地和全局变量混淆
这个问题在这里已经有了答案:
在Javascript中,变量声明自动移动到函数的顶部。 所以,解释者会让它看起来更像这样:
var myname = "initial"
function c(){
var myname;
// alerts undefined
alert(myname);
myname = "changed";
// alerts changed
alert(myname);
}
c();
这被称为'提升'。
由于提升以及任何变量的作用域是它所声明的函数这一事实,所以标准做法是在函数顶部列出所有变量以避免混淆。
它不是取代全局变量。 发生的事情被称为“变量提升”。 那就是, var myname;
插入到函数的顶部。 在使用它们之前总是初始化你的变量 - 试试这个:
var myname = "initial";
function c() {
alert(myname);
myname = "changed";
alert(myname);
}
c();
链接地址: http://www.djcxy.com/p/1469.html
上一篇: Javascript local and global variable confusion
下一篇: JavaScript click handler not working as expected inside a for loop