myname = "global"; // 全局变量
function func() {
alert(myname); // "undefined"
var myname = "local";
alert(myname); // "local"
}
func();
我想知道为什么结果是这样的?
这段代码相当于下面这样吗?
myname = "global"; // 全局变量
function func() {
var myname;
alert(myname); // "undefined"
myname = "local";
alert(myname); // "local"
}
func();
的确是相当与这样的,使用 var 关键字定义的变量,会被提升到作用域顶部,但是赋值操作不会被提升到顶端