JavaScript-null与undefined区别
在编程中,我们总是会写出这种:
- 某某未定义:Uncaught ReferenceError ReferenceError: XXX is not defined。
- null没有属性值:Uncaught TypeError TypeError: Cannot read properties of null
类似的bug,那为什么会null和undefined,我们来具体了解一下它们究竟是什么?以便我们遇到此类问题时可以快速找到出错点。
null(空值)
null类型的值只有一个,就是null,这个值专门用来表示一个为空的对象。使用typeof检查一个null值时,会返回object。
示例如下:
let a = null;
console.log(typeof a); // null本身是一个object
undefined(未定义)
undefined类型的值只有一个,就是undefined。当声明一个变量,但不给变量赋值时,它的值就是undefined。 使用typeof检查改变量时,会返回undefined。
示例如下:
let b;
console.log(b); // 打印信息:undefined
console.log(typeof b); // 类型为:undefined