var a = "hello";
function b ()
{
alert(a);
var a = "world";
alert(a);
}
b(); //为什么第一个alert是undefined
var a = "hello";
function b ()
{
alert(window.a);
var a = "world";
alert(a);
}
b(); //为什么这样子就没问题了呢?
第一段代码中,为什么第一个alert是undefined啊?
第二段代码,为什么加了window后就能弹出hello呢?
等价于
原因是 变量声明提升
变量声明无论出现在代码的任何位置,都会在任何代码执行之前处理。
https://developer.mozilla.org/zh-CN/docs...