浅析 JS中 undefined 和 null 两种数据类型的区别

1,470 阅读1分钟

JS中有5中基本数据类型 number(数据类型)、string(字符串类型) 、boolean(布尔类型)、undefined、null、还有一个ES6新增的Set(集合)数据类型

undefinednull他们两的数值都只有他们自己本身,且的值都是的意思,这就有点不便于理解了

  1. undefined : 未定义。 当变量只声明,但是没有赋值。此时默认值是undefined
  2. 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

总结,用更加通俗的话来解释undefinednull

  • undefined相当于期房。 买了房,但是房子还没建出来。(未定义)
  • null相当于毛坯房。买了房,但是房子没住人,里面是空的。(空值)