在Javascript中,我不能在Firefox或Chrome中的窗口对象上使用仅作为数字作为属性名称的字符串,但它可以在IE 11中使用。对于我尝试的任何其他数字,行为都是相同的。如果我使用像“abc”这样的字符串,它会按预期工作。
window["0"] = "hello"
"hello"
window["0"]
undefined
但是,根据文档:“对象属性名称可以是任何有效的JavaScript字符串,也可以是任何可以转换为字符串的内容,包括空字符串。” - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects#Objects_and_properties
我可以在任何其他对象上使用“0”作为属性名称,但不能在窗口上使用。这是为什么?
这被标记为what is the meaning of the Object window['0'] and window['1'] in javascript
的副本并且会,但似乎另一个问题中的人错误地写了他的问题。他问了我要问的同样的问题,但是要求窗口[0],而不是窗口[“0”]。给出的答案是窗口[0],这里不适用。