在说规则之前,我们先来看一下下面的代码的结果:
1 console.log(1 + "2" + "2"); // 122 2 3 console.log(1 + +"2" + "2"); // 32 4 5 console.log(1 + -"1" + "2"); // 02 6 7 console.log(+"1" + "1" + "2"); // 112 8 9 console.log( "A" - "B" + "2"); // NaN210 11 console.log( "A" - "B" + 2); // NaN
规则:
1.多个数字和数字字符串混合运算时,跟操作数的位置有关。
如:
console.log(2 + 1 + '3'); / /‘33’ console.log('3' + 2 + 1); //'321'
2.数字字符串之前存在数字中的正负号(+/-)时,会被转换成数字
如:
console.log(typeof '3'); // string console.log(typeof +'3'); //number
3.可以在数字前添加 '',将数字转为字符串
如:
console.log(typeof 3); // number console.log(typeof (''+3)); //string
4.对于运算结果不能转换成数字的,将返回 NaN
如:
console.log('a' * 'sd'); //NaN console.log('A' - 'B'); // NaN