undefined、null 区别
定义
两者都代表空,都是原始数据类型,使用typeof的类型检查,可以看出undefined就是undefined类型,null 是 object 类型(历史原因)。所以根据这个判断,可以帮助理解。
null是一个没有地址指向的对象(尚未创建的对象)undefined未去定义这个变量
js
// null
const a = null;
// undefined
let b;注意点
- typeof 检查 null 的类型为 object
- unefined 计算时会隐式转换为 NaN、null 为 0
- JSON.stringify 时如果对象属性值是 undefined,会删除该属性,因为删掉后表现形式也没不同,在需要保留时就得注意了
- 判断时两者转换为 false
JStar