我对这里的NOOP问题感到困惑:
如果比较字符串和数字,则字符串将转换为整数:
"1"==1 //true
使用字符串和数字操作,数字将被转换为字符串:
"1"+1 // '11"
为什么类型强制之间的javascript有这么大差异?
答案 0 :(得分:3)
这就是运营商的定义方式(http://es5.github.io/#x11.9.3,http://es5.github.io/#x11.6.1)。
==
,如果一个操作数是一个字符串而另一个是数字,则该字符串将转换为数字。+
,如果一个操作数是一个字符串,另一个操作数将转换为字符串。所以区别在于哪个操作数被转换为哪种类型,对于每个操作数都是不同的(例如,通过乘法,两个操作数都被转换为数字)。