loading

null和undefined

# 相同和不同之处

  • undefined和null在if语句中,都会被自动转为false,加!转换为true,相等运算符对于两者比较是相等的。
undefined == null
// true

1
2
3
  • typeof判断出的结果nullobject
console.log(typeof undefined);  // undefined
console.log(typeof null);   // object 
1
2
  • null是一个表示"无"的对象,转为数值时为0undefined是一个表示"无"的原始值,转为数值时为NaN
var a1= 5 + null;
console.log(a1)  // 5

var a2= 5 + undefined;
console.log(a2)  // NaN
1
2
3
4
5
  • 松散相等,严格不相等
null !== undefined  // true

null === undefined  // false

null == undefined  // true
1
2
3
4
5

# 实际会出现的场景

# null

  • (1) 利用document.getElementById(‘XXX’) 寻找一个不存在的元素,将返回null。
console.log(null == document.getElementById('notExistElement'))  // true
1
  • (2) 作为对象原型链终点
Object.getPrototypeOf(Object.prototype)  // null
1
  • (3)需要释放变量的内存时,赋值为null

# undefined

  • (1)声明了一个变量,但没有赋值,就等于undefined。
var a
console.log(a) // undefined
1
2
  • (2) 函数定义了形参,但没有传递实参,该参数等于undefined。
//函数定义了形参 a 
function f(a) {
     console.log(a); // undefined 
}  
f(); //未传递实参
1
2
3
4
5
  • (3)访问对象上不存在属性,该属性的值为undefined。
var  a = new Object()
a.p // undefined
1
2
  • (4)函数没有返回值时,默认返回undefined。
var a = f()
a // undefined
1
2
最近更新时间: 2021/06/17 10:13:36
最近更新
01
2023/07/03 00:00:00
02
2023/04/22 00:00:00
03
2023/02/16 00:00:00