二者区别
- null是一个表示“无”的对象,转为数值是0.
- undefined是一个表示“无”的原始值,转换为数值是NaN.
undefined的几种情况
- 变量被声明,但是没有赋值,就等于undefined.
- 调用函数,应该传的参数没有传,此时该参数为undefined。
- 对象没有赋值的属性,为undefined.
- 函数没有返回值,默认返回undefined.
null的几种情况
- 作为原型链的最顶端,也就是
Object.prototype.__proto__
的指向。 - 作为函数的参数,表示该函数的参数不是对象。比如:
Math.min.apply(null,[21,5,1,5,-5,2])
,可以求得一个数组的最小值。