你真的懂吗?Undefined与Null的区别

456 阅读1分钟

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 则表示人为的设置为空对象的状态值,并不是变量的原始状态。

如果对你有帮助的话,请点个赞👍吧~