null和undefined总是会放在一起讲,尽管说他们齐全不是一个货色,然而很多人都不是很能精确地,简略地区分他俩。然而其实,他们的确又有些雷同。
一: null和undefined不同
1: 类型不行
首先,null和undefined是JS根本类型外面的两种类型,而且他俩都很非凡。因为在undefined这个类型外面就只有undefined这个值,在null这个类型外面就只有null这个值。
2:示意的意义和概念不同
undefined: 示意没有初始化
null: 示意不可用,不存在
二: null和undefined的雷同和分割
1: 应用==的时候,二者相等
null == undefined; //true
2:== undefined 和 == null的性能一样
x == undefined x为undefined或者null,后果都是true
x == null x为undefined或者null,后果也都是true
三:== null或者== undefined的实用场景
咱们能够应用== null 或者 == undefined来查看对象,例如
let info = {age: 10}
info.name; //undefined
所以,咱们能够应用:
if(info.name == null/undefined){// do something}
四:== null或者== undefined的不实用场景
不能把 == null或者 == undefined用于根级别查看。 根级别查看能够了解为不是对象上的属性,而是独立的变量的查看。例如一个从未定义的变量,如果应用它,那么它既不是null也不是undefiend, 而是会失去一个error:
xname; //Uncaught ReferenceError: xname is not defined
然而奇异的是,对于这个没有定义过的变量,如果咱们应用typeof的话,会失去’undefined‘:
typeof xname; // 'undefined'
所以,对于根级别的查看,咱们个别应用typeof:
if(typeof xname == 'undefined'){//do something}