xiaokeqi / i-learned

1 stars 0 forks source link

typeof类型判断 #58

Open xiaokeqi opened 3 years ago

xiaokeqi commented 3 years ago

typeof 常常判断基本数据类型(包括symbol),首先我们必须知道js typeof 的原理:

js 在底层存储变量的时候,会在变量的机器码的低位1-3位存储其类型信息。

000:对象 010:浮点数 100:字符串 110:布尔 1:整数 对于 undefined 和 null 来说,这两个值的信息存储是有点特殊的。

null:所有机器码均为0

undefined:用 −2^30 整数来表示。

typeof 在判断 null 的时候就出现问题了,由于 null 的所有机器码均为0,因此直接被当做了对象来看待。