Null 与Undefined 的异同
简单区分
总的来说 null
和 undefined
都代表空,主要区别在于 undefined
表示尚未初始化的变量的值,而 null
表示该变量有意缺少对象指向.
-
undefined
-
这个变量从根本上就没有定义
-
隐藏式 空值
-
null
-
这个值只是单纯的被声明,并未指向任何对象
-
声明式 空值
1.比较值 非严格等号的时候两者相等,严格等号的时候,二者不相等
console.log(null == undefined); //true
console.log(null === undefined); //false
2.typeof
console.log(typeof null); //object
console.log(typeof undefined); //undefined
2.两者的相似性
在if判断的时候 都会自动被转化为false
console.log("------------");
if(!null){
console.log("null if false");
}
//null if false
if(!undefined){
console.log("undefined if false");
}
//undefined if false
3.两者默认的转化值不一样
null转化为0,undefined转化为NaN
console.log(Number(null)); //0
console.log(null + 10); //10
console.log(Number(undefined)); //NaN
console.log(undefined + 10); //NaN