根据这个问题和这个自动生成器,我一直在用括号和其他符号来混淆 Javascript - 出于纯粹的教育原因,我可以说:)
例如,评估(![]+[])[+!+[]]
给了我字母"a"
。
但是,这些示例似乎依赖于[].sort.call()
返回窗口对象。我的问题是,每当这似乎不适用于我安装的任何浏览器(Chrome 14、FF 9、IE 9)时:
//They told me this would return the window object
[].sort.call()
//But I get an exception instead:
"TypeError: Array.prototype.sort called on null or undefined"
所以我问:
- 是
[].sort.call()
在最近的浏览器上修复的还是它仍然返回窗口对象而只是我做错了什么? - 如果是我不能再使用这种方法的情况,有没有其他方法可以只使用括号、括号、感叹号和 + 运算符来访问窗口对象?