在 JavaScript 中,null 和 undefined 是两个特殊的值。虽然它们看起来很相似,但它们有着不同的含义和用法。
null 是一个对象
在 JavaScript 中,null 被认为是一个空对象引用(Null Object Reference),因此 typeof null 返回 "object"。这是 JavaScript 最初的实现上的一个错误,在后续版本中被保留了下来。
console.log(typeof null); // "object"
null 和 undefined 的区别
undefined 表示变量没有被初始化或者对象属性不存在,而 null 表示变量已经被赋值为 null 值。因此,当要表示一个变量没有值时,应该使用 undefined 而不是 null。
示例代码
let x; console.log(x); // undefined let y = null; console.log(y); // null
另外,对于对象属性,如果该属性不存在,返回 undefined;如果该属性的值为 null,则返回 null。
const person = { name: 'John', age: null, }; console.log(person.name); // 'John' console.log(person.age); // null console.log(person.gender); // undefined
总结
- null 是一个空对象引用,typeof null 返回 "object"。
- undefined 表示变量没有被初始化或者对象属性不存在,应该用于表示变量没有值。
- 对象属性如果不存在返回 undefined,如果值为 null 则返回 null。
在编写 JavaScript 代码时,应该清楚 null 和 undefined 的含义和用法,并根据具体情况来选择使用哪个值。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/7943