有人可以向我解释一下,在javascript中,返回结果的结果会有所不同:
› {} + []
» 0
› [] + {}
» "[object Object]"
Run Code Online (Sandbox Code Playgroud)
小智 7
这是因为{}代码中的不是对象文字,而是空块.
它被解析为:
{}; // empty block
+ []; // this result is shown in the console
Run Code Online (Sandbox Code Playgroud)
与之相比({}) + [],得到的结果相同[] + {}; 在这种情况下,括号强制{}"在表达式上下文中"处理/解析.
有一个一堆上SO重复的大约的这个特定的双本质{}(作为表达或块?),但,发现它们可以是有点棘手..
我在Meta上找到https://meta.stackexchange.com/questions/83911/how-do-i-search-stackoverflow-for-at-keywords-like-private-or-synthesize,并使用Symbolhound"最接近"的重复项我能找到解决问题的解决这样的(这涉及到需要添加括号时"eval'ing JSON")或本(其中类似的使用结构的"{} ==假"是一个语法错误).
如果有人知道更好的方法来搜索SO这个问题,或者有一个链接到这样的重复方便..
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |