前几天我在 Reddit 上偶然发现了这个。海报指出
{} + ""
等于0
,而类似的
"" + {}
等于一个空[object Object]
.
正常的数学规则告诉我这很奇怪,但为什么会这样呢?
代币{
语句的开头可能意味着对象文字的开始,也可能意味着语句块的开始。 JavaScript 假定它是后者,即语句块。
Thus
{} + ""
只是一个空语句块,后跟表达式+ ""
,这将被解释为0
由于一元的语义+
操作员。
在另一张中,{}
is not位于语句的开头,因此它明确是一个(空)对象文字。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)