由于js的弱类型,导致null和undefined很容易混淆。
null:表示此处不应该有值,表示没有对象
1.作为函数的参数=>表示该参数不是对象
2.作为原型链的终点
判断方法:
!exp && typeof(exp)!=undefined && exp!=0
【正常来说!exp就够了,但undefined和0对于!exp也能通过】
undefined:表示缺少值,此处应有一个值,但还没有定义
1.没有赋值的变量
2.函数调用时,应该提供却没有提供的参数
3.对象中没有赋值的属性
4.没有返回值的函数
判断方法:
typeof(exp)=='undefined'