隐式类型转换
+号转为字符串
|
|
- 如果 + 的其中一个操作数是字符串(或者通过以上步骤可以得到字符串), 则执行字符串拼接;否则执行数字加法。
- 因为数组的 valueOf() 操作无法得到简单基本类型值,于是它转而调用 toString()。因此上例中的两 个数组变成了 “1,2” 和 “3,4”。+ 将它们拼接后返回 “1,23,4”。
- a + “”(隐式)和前面的String(a)(显式)之间有一个细微的差别需要注意。根据 ToPrimitive抽象操作规则,a + “”会对a调用valueOf()方法,然后通过ToString抽象 操作将返回值转换为字符串。而 String(a) 则是直接调用 ToString()。
-号转为数字
会将操作数转为数字。先通过toString()转为字符串,再转为数字
布尔值转为数字
true => 1
false => 0
转为布尔值的条件
- if()
- for(;;)第二个表达式
- while(){} do{}while()判断条件
- ?:判断
- ||和&&的左操作数