JavaScript中的null问题

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作为操作数。
如果至少有一个操作数是对象,会被转换成原始值(字符串,数字或布尔);
转换之后,如果至少有一个操作数是字符串类型,第二个操作数会被转换成字符串,并且会执行连接。
在其他的情况下,两个操作数都会转换成数字并执行算数加法运算。
如果两个操作数都是原始类型,运算符会检查是否至少有一个是字符串类型,如果是就执行连接操作。其他情况就都转换为数字并求合。

字符连接操作时会默认去调用String的valueOf()方法。如果参数为 null,则字符串等于 "null";否则,返回 obj.toString() 的值。而null是空的意思,什么都没有,没有地址。赋什么值就等于什么值

Null与字符串相加就是拼接字符串;而与数字相加得到的还是原来的数字,可以把null当作0处理。