null和undefined
# 相同和不同之处
undefine
d和null
在if语句中,都会被自动转为false
,加!转换为true
,相等运算符对于两者比较是相等的。
undefined == null
// true
1
2
3
2
3
- 用
typeof
判断出的结果null
是object
console.log(typeof undefined); // undefined
console.log(typeof null); // object
1
2
2
null
是一个表示"无"的对象,转为数值时为0
;undefined
是一个表示"无"的原始值,转为数值时为NaN
。
var a1= 5 + null;
console.log(a1) // 5
var a2= 5 + undefined;
console.log(a2) // NaN
1
2
3
4
5
2
3
4
5
- 松散相等,严格不相等
null !== undefined // true
null === undefined // false
null == undefined // true
1
2
3
4
5
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
- (2) 函数定义了
形参
,但没有传递实参
,该参数等于undefined。
//函数定义了形参 a
function f(a) {
console.log(a); // undefined
}
f(); //未传递实参
1
2
3
4
5
2
3
4
5
- (3)访问对象上
不存在
的属性
,该属性的值为undefined。
var a = new Object()
a.p // undefined
1
2
2
- (4)函数
没有返回值
时,默认返回undefined。
var a = f()
a // undefined
1
2
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