1.相同点
if判断语句中,两者都会被转换为false
function fun(a,b){
console.log(a && b)
return a && b
}
fun(null, undefined) //false
2.不同点
null
null是一个表示”空“的对象
Number(null) //0
典型用法:
- 作为函数的参数,表示该函数的参数不是对象
- 对象原型链的终点为null
undefined
undefined表示一个变量被定义了。但是没有赋值,此处应该有值,但是没有定义。
Number(null) //NaN
典型用法:
- 变量被声明了还没有赋值
- 对象没有被赋值的属性
- 函数的参数没有被提供时,该参数为undefined
- 函数没有返回值,默认返回undefined
具体看以下代码:
var a
a // undefined
var obj = { a: 1 }
obj.b //undefined
function fun(x){
console.log(x)
}
fun() //undefined
var x = fun()
x //undefined