typeof null 的結(jié)果是Object。
在 JavaScript 第一個(gè)版本中,所有值都存儲(chǔ)在 32 位的單元中,每個(gè)單元包含一個(gè)小的 類型標(biāo)簽(1-3 bits) 以及當(dāng)前要存儲(chǔ)值的真實(shí)數(shù)據(jù)。類型標(biāo)簽存儲(chǔ)在每個(gè)單元的低位中,共有五種數(shù)據(jù)類型:
如果最低位是 1,則類型標(biāo)簽標(biāo)志位的長度只有一位;如果最低位是 0,則類型標(biāo)簽標(biāo)志位的長度占三位,為存儲(chǔ)其他四種數(shù)據(jù)類型提供了額外兩個(gè) bit 的長度。
有兩種特殊數(shù)據(jù)類型:
undefined的值是 (-2)30(一個(gè)超出整數(shù)范圍的數(shù)字);null 的值是機(jī)器碼 NULL 指針(null 指針的值全是 0)
那也就是說null的類型標(biāo)簽也是000,和Object的類型標(biāo)簽一樣,所以會(huì)被判定為Object。