JS中有5中基本数据类型 number(数据类型)、string(字符串类型) 、boolean(布尔类型)、undefined、null、还有一个ES6新增的Set(集合)数据类型
undefined和null他们两的数值都只有他们自己本身,且的值都是空的意思,这就有点不便于理解了
- undefined : 未定义。 当变量只声明,但是没有赋值。此时默认值是undefined
- null : 有定义。 定义的值是空值。
下面就从两者相同点和不同点说起
1.相同点
(1)值相等 (2)转布尔类型都是false
1.1值相同
console.log( undefined == null )//true
1.2转换Boolean的都是false
console.log( Boolean(undefined) )//false
console.log( Boolean(null) )//false
2.不同点
(1)数据类型不同 (2)转number类型的值不同
2.1数据类型不同
console.log( undefined === null )//false
2.2 转换为Number类型的值不同
console.log( Number(undefined) )//NaN
console.log( Number(null) )//0
总结,用更加通俗的话来解释undefined和null
- undefined相当于期房。 买了房,但是房子还没建出来。(未定义)
- null相当于毛坯房。买了房,但是房子没住人,里面是空的。(空值)