我在一次采访中得到了这个问题,我很好奇为什么这两个输出不同的东西:
(function() {
console.log(bar);
console.log(baz);
foo();
function foo() {
console.log('aloha');
}
var bar = 2;
baz = 3;
})();
输出:
undefined
Uncaught ReferenceError: baz is not defined
然而:
(function() {
console.log(bar);
console.log(window.baz);
foo();
function foo() {
console.log('aloha');
}
var bar = 2;
baz = 3;
})();
输出:
undefined
undefined
'aloha'
baz
引用方式和window.baz
引用方式有什么区别?我虽然全局变量自动附加到窗口?