var test_1 = null;
var test_2 = 'abc';
var test_3 = 2;
console.log(test_1+test_2);
console.log(test_1+test_3);
运行结果为
nullabc
2
null的类型是object,值为空。
为什么null+字符串的结果是null字符串,而null+number的结果是number?
var test_1 = null;
var test_2 = 'abc';
var test_3 = 2;
console.log(test_1+test_2);
console.log(test_1+test_3);
运行结果为
nullabc
2
null的类型是object,值为空。
为什么null+字符串的结果是null字符串,而null+number的结果是number?
JavaScript允许使用对象,数组,null或undefined作为操作数。
如果至少有一个操作数是对象,会被转换成原始值(字符串,数字或布尔);
转换之后,如果至少有一个操作数是字符串类型,第二个操作数会被转换成字符串,并且会执行连接。
在其他的情况下,两个操作数都会转换成数字并执行算数加法运算。
如果两个操作数都是原始类型,运算符会检查是否至少有一个是字符串类型,如果是就执行连接操作。其他情况就都转换为数字并求合。