我给了两个不同的代码。一个内部全局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();

最佳答案

windowundefined是预定义的(通过JS引擎/浏览器)变量。

您不能覆盖只读变量(如果变量已经存在,则在存在它的作用域中使用var不会执行任何操作)。

您可以在较窄的范围内声明一个新变量,该变量将在较宽的范围内屏蔽具有相同名称的变量。

关于javascript - 为什么在函数内部我们可以覆盖“undefined”,但不能在JS的window对象中使用…示例如下,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44778687/

10-09 16:09
查看更多