字符串和数字之间的类型强制

时间:2014-09-16 16:30:53

标签: javascript

我对这里的NOOP问题感到困惑:

如果比较字符串和数字,则字符串将转换为整数:

"1"==1 //true

使用字符串和数字操作,数字将被转换为字符串:

"1"+1 // '11"

为什么类型强制之间的javascript有这么大差异?

1 个答案:

答案 0 :(得分:3)

这就是运营商的定义方式(http://es5.github.io/#x11.9.3http://es5.github.io/#x11.6.1)。

  • 使用==,如果一个操作数是一个字符串而另一个是数字,则该字符串将转换为数字。
  • 使用+,如果一个操作数是一个字符串,另一个操作数将转换为字符串。

所以区别在于哪个操作数被转换为哪种类型,对于每个操作数都是不同的(例如,通过乘法,两个操作数都被转换为数字)。