可能重复:
JavaScript BlockStatement confusion为什么{10 +'1'} + 10等于10?
为什么{10 + '1'} + 10
等于10?
我猜测1不起作用,因为它在一个字符串中,但不知道其余的。
可能重复:
JavaScript BlockStatement confusion为什么{10 +'1'} + 10等于10?
为什么{10 + '1'} + 10
等于10?
我猜测1不起作用,因为它在一个字符串中,但不知道其余的。
此:
{10 + '1'}
是一个语句块。这不等于10;它有
没有任何价值,实际上
的值为“101”,一个字符串(学习一些无用的东西:-)。这不是一个特别的对象。
此:
等于10
试试这个:
({10 + '1'}) + 10
,你会看到一个差异。
'({10 +'1'})+ 10' =>语法错误:-) – 2012-03-28 14:36:16
是的,这就是我意思是:-)重点是解析器看到一个语句块,然后是另一个语句:表达式“+ 10”。该块是种不相关的。 – Pointy 2012-03-28 14:37:15
这是因为{}
中的所有代码都被忽略。 {}
中的代码是一个运行的表达式,然后忽略它的“值”。
因此{10 + '1'} + 10
只是+10
这就是10
。
我怀疑铸造对象为整数的产量为0,所以0 + 10 = 10.你期望会发生什么? – Matthew 2012-03-28 14:34:33
但是{} + {} + 0'产生'NaN'得到lurv javascript <3 – 2012-03-28 14:35:51
'{10 +'1'}'不是一个对象。 – 2012-03-28 14:36:09