+ [] 和 [] + 结果如何不同[重复]

Posted

技术标签:

【中文标题】+ [] 和 [] + 结果如何不同[重复]【英文标题】:How can + [] and [] + results be different [duplicate] + [] 和 [] + 结果如何不同[重复] 【发布时间】:2012-08-13 13:17:37 【问题描述】:

可能重复:What is the explanation for these bizarre javascript behaviours mentioned in the 'Wat' talk for CodeMash 2012?

有人可以向我解释在 javascript 中返回的结果如何不同:

›  + []
» 0
› [] + 
» "[object Object]"

【问题讨论】:

因为它是 Javascript...谁说它必须有意义?!! WAT? :) ***.com/questions/9032856/… @Mehrdad 这一切都在规范中***.com/a/9033306/135448,现在取决于您所说的“有意义”;) 我想我昨天读到了同样的问题...... 【参考方案1】:

这是因为代码中的不是对象字面量,而是一个空块。

解析为:

;   // empty block
+ []; // this result is shown in the console

() + [] 比较,产生与[] + 相同的结果;在这种情况下,括号强制 被“在表达式上下文中”处理/解析。

关于 的这种特殊双重性质(作为表达式或块?),SO 上有很多重复的bunch,但是,找到它们可能有些棘手..


我在 Meta 上找到了 https://meta.stackexchange.com/questions/83911/how-do-i-search-***-for-at-keywords-like-private-or-synthesize,并使用 Symbolhound 找到了解决问题 like this(与“评估 JSON”时需要添加括号有关)或 this(其中使用“ == false”之类的结构是语法错误)。

如果有人知道更好的方法来搜索此类问题,或者有指向此类重复的方便的链接..

【讨论】:

实际上找到重复项是问题所在。我确定我在过去几天看到了同样的问题,但在 [] 上搜索效果不太好。 是的,我遇到了这个问题。现在我只是想按照 pst 的说明合并它们。 ***.com/questions/9032856/…

以上是关于+ [] 和 [] + 结果如何不同[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过两种不同类型的字段对 linq 查询结果进行排序 [重复]

Python列表-L1 + = [5]和L1 = L1 + [5]的不同结果[重复]

如何定义对象类型的真正逻辑或(结果中不混合不同的对象键)[重复]

PHP回合不同的结果[重复]

LINQ 和 SQL 中看似等效的查询返回不同的结果 [重复]

如何在cfoutput中显示不同的值