我给了两个不同的代码。一个内部全局window
对象,另一个内部foo
函数
这是我的第一个代码:
var undefined = 2; // 2
console.log(undefined == 2); // it gives me FALSE
var window = 5; // 5
console.log(window == 5); // it gives me FALSE
var a;
console.log(a); // it give me UNDEFINED
这是我的第二个代码:
function foo() {
var undefined = 2; // 2
console.log(undefined == 2); // true
var window = 5; // 5
console.log(window == 5); // true
var a;
console.log(a);
}
foo();
最佳答案
window
和undefined
是预定义的(通过JS引擎/浏览器)变量。
您不能覆盖只读变量(如果变量已经存在,则在存在它的作用域中使用var
不会执行任何操作)。
您可以在较窄的范围内声明一个新变量,该变量将在较宽的范围内屏蔽具有相同名称的变量。
关于javascript - 为什么在函数内部我们可以覆盖“undefined”,但不能在JS的window对象中使用…示例如下,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44778687/