前几天我在reddit上偶然发现了这一点。海报注意到了
{} + ""
等于0
,而类似
"" + {}
等于空[object Object]
。
正常的数学规则告诉我这很奇怪,但为什么会这样呢?
答案 0 :(得分:0)
语句开头的标记var minNum = 1;
var maxNum = 30;
var sum = 75;
var amount = 6;
可能意味着对象文字的开头,或者它可能意味着语句块的开始。 JavaScript假定它是后者,一个语句块。
因此
{
只是一个空语句块,后跟表达式{} + ""
,由于一元+ ""
运算符的语义,它将被解释为0
。
另一方面,+
在语句开头是不,所以它明确地是一个(空)对象文字。