【发布时间】:2014-05-11 06:16:20
【问题描述】:
>> {} + [] 0
所以 EmptyObject + EmptyArray 的计算结果为 0。 (免责声明:我不完全理解为什么会这样。)好的,现在我想将这个 0 分配给一个变量!看起来很简单:
>> var a = {} + []; undefined >> a "[object Object]"
好吧,也许没那么容易。 Google 有点...啊哈! {} 在这种情况下is actually a code block,不是一个空对象。所以让我让它看起来更像一个代码块:
>> var a = { } + []; undefined >> a "[object Object]"
...该死。 自我注意:JavaScript 会忽略空格。
有什么方法可以将{} + [](或类似的)分配给一个变量,但仍然让{} + [] 评估为0?
【问题讨论】:
-
您为什么要这样做? XD
-
@NiettheDarkAbsol 因为它会很有趣。 :P 我必须有更好的理由吗?
-
{}在=之后得到不同的解释。 -
这让我想起了这颗宝石:destroyallsoftware.com/talks/wat
-
@SergeyK 这实际上是我第一次听说
{} + [] = 0
标签: javascript arrays