【发布时间】:2015-06-11 20:25:36
【问题描述】:
在我的时事通讯中看到了这一点。在 Chrome 和 Firefox 上测试。我还是想不通。
[]+(-~{}-~{}-~{}-~{})+(-~{}-~{}); //=> "42"
【问题讨论】:
-
从未见过这样的东西,我很想知道那是什么。
-
因为 Javascript 有荒谬的数字强制规则。 (而且,基本上不可能搜索以前提出过这个问题的实例。)
-
如果你想知道为什么 JS 会以它的方式做某些事情,我鼓励你阅读规范。您只需查看ecma-international.org/ecma-262/5.1/#sec-11.4.8、ecma-international.org/ecma-262/5.1/#sec-11.4.7 和ecma-international.org/ecma-262/5.1/#sec-11.6.1
-
因为
[]+(-~{}-~{}-~{}-~{})+(-~{}-~{}) === []+(-~true-~true)+(-~true),很明显。 -
无论如何,答案与生命宇宙和万物的问题的答案相同......(en.wikipedia.org/wiki/…)
标签: javascript