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
。块有点不相关。在“数学”中放弃字符串连接也是个好主意。在“数学”中放弃字符串连接也是个好主意。