{} +"" vs"" + {} - 增加的一致性

时间:2016-06-01 18:42:55

标签: javascript

前几天我在reddit上偶然发现了这一点。海报注意到了

{} + ""

等于0,而类似

"" + {}

等于空[object Object]

正常的数学规则告诉我这很奇怪,但为什么会这样呢?

1 个答案:

答案 0 :(得分:0)

语句开头的标记var minNum = 1; var maxNum = 30; var sum = 75; var amount = 6; 可能意味着对象文字的开头,或者它可能意味着语句块的开始。 JavaScript假定它是后者,一个语句块。

因此

{

只是一个空语句块,后跟表达式{} + "" ,由于一元+ ""运算符的语义,它将被解释为0

另一方面,+在语句开头是,所以它明确地是一个(空)对象文字。