我理解以下功能,因为发生了变量提升。 FOO();
function foo() {
console.log( a ); // undefined
var a = 2;
}
然而,我不明白的是以下部分。 我有参考错误,为什么?
foo()
function foo() {
console.log( a ); // Reference Error
a = 2;
}
---编辑---
到目前为止,我从答案中理解的是第二个没有任何提升,我们不能使用任何未定义的变量。
foo()
function foo() {
// we cannot use any undefined variable, which "a" here
console.log( a );
window.a = 2;
}
例如
var a;
a; //undefined
b; //Reference error
答案 0 :(得分:0)
在第一个中,a
被声明,但是undefined
,在第二个中它也是未声明的(在foo
中无法找到在全局范围内),因此抛出一个ReferenceError。