Javascript 我们能解释这种奇怪的行为吗?

Javascript 我们能解释这种奇怪的行为吗?,javascript,javascript-objects,Javascript,Javascript Objects,我在控制台中尝试了以下操作 var someVar1 = 1; someVar1; // 1 someVar1 in window; // true var someVar2 = 2; someVar2 in this; // true someVar2 in window; // true delete someVar1; someVar1; // 1 someVar1 in window; // true this === win

我在控制台中尝试了以下操作

var someVar1 = 1;
someVar1;            // 1
someVar1 in window;  // true

var someVar2 = 2;
someVar2 in this;    // true
someVar2 in window;  // true

delete someVar1;
someVar1;            // 1
someVar1 in window;  // true

this === window;     // true

var someVar3 = 3;
someVar3 in window;  // false
someVar3;            // 3
someVar3 in window;  // false
为什么窗口中的
someVar3计算为
false

在Chrome版本67.0.3396.99浏览器上执行的测试。

问题 您希望窗口中的
someVar3
返回
true
。您没有得到
true
,因为您使用的运算符带有
someVar3
的值(即
3
),而不是其标识符
“someVar3”

您的代码示例归结为:

var someVar1=1;
var-someVar3=3;
console.log(窗口中的someVar1);

console.log(窗口中的someVar3)而不是图像,你应该发布一个可执行的代码片段……。我在窗口中的
someVar1中丢失了你,这应该是窗口中的
“someVar1”,否则它将立即为
false
,至少在我的chrome上是这样。我假设您在执行显示的代码之前,将
window[1]
window[2]
设置为某个值,但没有在此处显示。在我看来,您至少可以从以下位置开始您的旅程。