Null
1. 对象原型链的终点
Null是原型链的终点,即对象Object的原型prototype为Null
console.log(Object.getPrototypeOf(Object.prototype)) //null
2. 对象变量初始值
如果定义了一个对象变量,一般情况下我们会将该变量初始化为null。换而言之,当该变量还没有真正保存对象时,应该明确地让该变量初始化为Null。
3. 释放引用
当我们不再需要使用一个数据时,最好通过将其值设置为Null来释放其引用,这个做法一般叫做解除引用。
Undefined
1. 变量被声明了,但没有初始化
var time;
console.log(time) //undefined
2. 访问对象不存在的属性或者未声明的变量
console.log(Object.time); // undefined
console.log(typeof year); // undefined
3. 函数定义了形参,但调用函数时没有传递实参
function hello(a) {
console.log(a) //undefined
}
hello()
4. 函数没有返回值时,默认返回undefined
function hello() {
console.log('hello')
}
var b = hello()
console.log(b) //undefined
总结
Undefined 表示一个变量自然的、最原始的状态值,而 null 则表示人为的设置为空对象的状态值,并不是变量的原始状态。
如果对你有帮助的话,请点个赞👍吧~