1.不同点
1.数据类型不同
typeof null === 'object'
typeof undefined === 'undefined'
2.转为数值时值不同
Number(null) -->0
Number(undefined) -->NaN
3.用法和含义不同
null表示"空值"
undefined表示"未定义"
1)其中当函数没有返回值时,默认返回undefined; function a(){} a() === undefind
2)变量声明后未赋值 var i; i===undefined 或者 a={}; a.p === undefined
3)function a(x){ return x} a() === undefined;因为x===undefined
2. 相同点
null和undefined转为布尔值时,都是false;
其中能自动转为false的数据有6个: null, undefined, NaN,false, '', 0
详情请参考阮一峰js标准参考教程