null:表示一个空对象指针,现阶段默认为是对象的占位符,是一个原始值,表示空值。
undefined:正常情况下,只声明未定义,默认值就是undefined。
typeof检测数据类型:
null // object
undefined // undefined
(null === undefined) // false
(null == undefined) // true
null和undefined值相等,但是类型不相等。
JS 什么情况下会出现undefined?
(1)在变量提升(预解析)阶段,只声明未定义,默认值就是undefined。
(2)函数定义没有返回值(return或者return后面什么也不带),默认的返回值就是undefined。
(3)函数定义形参不传值,默认就是undefined。
(4)对象没有这个属性名,属性值默认就是undefined。
(5)在数组的find方法中,没有找到的情况下是undefined。