undefined和null的区别
1.基本概念
undefined : 是一个表示”缺少值”的原始值,就是应该在这之前应该定义,但是还并没有定义。
null : null表示此处为空,就是表示没有东西此处什么都没有。
。
undefined,null,NaN,0互相判断验证
var arr = [null , undefined, NaN, 0];
var str = "" ;
for (var i = 0; i < arr.length ; i++)
{
for (var j = i + 1; j < arr.length ; j++)
{
if (arr[i] == arr[j])
{
str +=( arr[i] + " == " + arr[j] ) + "\n" ;
}
else
{
str += (arr[i] + " != " + arr[j] ) + "\n" ;
}
}
}
console.log(str)
结果:
null == undefined
null != NaN
null != 0
undefined != NaN
undefined != 0
NaN != 0
NaN表示的是一个”不是数字的数字”, 包括了所有不是数字的东西(并集)
null和undefined的隐式转换是相等的,但是===判断的话就是false了
2.判断值是否存在
这样判断一个值是否存在,就可以用
var a ;
console.log(a === undefined);
//true
//这里不能用null因为null代表空值。
3.undefined典型用法是:
1. 变量被声明了,但没有赋值时,就等于undefined。
2. 调用函数时,应该提供的参数没有提供,该参数等于undefined。
3. 对象没有赋值的属性,该属性的值为undefined。
4. 函数没有返回值时,默认返回undefined。