Javascript 为什么{10+;';1';}+;10等于10?

Javascript 为什么{10+;';1';}+;10等于10?,javascript,Javascript,可能重复: 为什么{10+'1'}+10等于10 我猜1不起作用,因为它在一个字符串中,但不确定其余部分。这是: {10 + '1'} 是一个语句块。它不等于10;它没有任何价值,事实上是“101”,一个字符串(每天学习一些无用的东西:-)。特别是,它不是一个对象 这: 等于10 试试这个: ({10 + '1'}) + 10 你会看到不同之处。这是: {10 + '1'} 是一个语句块。它不等于10;它没有任何价值,事实上是“101”,一个字符串(每天学习一些无用的东西:-)。特别是,

可能重复:

为什么
{10+'1'}+10
等于10

我猜1不起作用,因为它在一个字符串中,但不确定其余部分。

这是:

{10 + '1'}
是一个语句块。它不等于10;它没有任何价值,事实上是“101”,一个字符串(每天学习一些无用的东西:-)。特别是,它不是一个对象

这:

等于10

试试这个:

({10 + '1'}) + 10
你会看到不同之处。

这是:

{10 + '1'}
是一个语句块。它不等于10;它没有任何价值,事实上是“101”,一个字符串(每天学习一些无用的东西:-)。特别是,它不是一个对象

这:

等于10

试试这个:

({10 + '1'}) + 10

您将看到不同之处。

这是因为
{}
中的所有代码都被忽略。
{}
中的代码是一个表达式,它运行,然后忽略它的“值”


所以
{10+'1'}+10
只是
+10
,这是
10

这是因为
{}
中的所有代码都被忽略了。
{}
中的代码是一个表达式,它运行,然后忽略它的“值”


所以
{10+'1'}+10
就是
+10
,也就是
10

你可能想做的是:

(10 + '1') + 10

不要在数学中使用{}-use()

您可能想做的是:

(10 + '1') + 10

不要在数学中使用{}-use()

我怀疑将对象强制转换为整数会产生0,因此0+10=10。你期望会发生什么?
{10+'1'}
不是一个对象。@安德烈亚斯:不,它会产生一个字符串
[]=>“
{}=>”[object object]”
@andreas:不,它生成字符串
'[object]'
。数组转换为空字符串,对象转换为字符串。首先,请花几分钟时间观看Gary Bernhardt的视频:我保证它至少有娱乐价值。它不会直接回答你的问题,但它应该为你指明正确的方向!我怀疑将对象强制转换为整数会产生0,因此0+10=10。你期望会发生什么?
{10+'1'}
不是一个对象。@安德烈亚斯:不,它会产生一个字符串
[]=>“
{}=>”[object object]”
@andreas:不,它生成字符串
'[object]'
。数组转换为空字符串,对象转换为字符串。首先,请花几分钟时间观看Gary Bernhardt的视频:我保证它至少有娱乐价值。它不会直接回答你的问题,但它应该为你指明正确的方向
({10+'1'})+10
=>语法错误:-)是的,这就是我的意思:-)重点是解析器看到一个语句块,然后是另一个语句:表达式
+10
。块有点不相关。
({10+'1})+10
=>语法错误:-)是的,这就是我的意思:-)重点是解析器看到一个语句块,然后是另一个语句:表达式
+10
。块有点不相关。在“数学”中放弃字符串连接也是个好主意。在“数学”中放弃字符串连接也是个好主意。