為什麼null的typeof 是object呢

2021-09-21 18:28:42 字數 775 閱讀 5528

typeof 返回的正常型別,是這樣的

typeof

1// 'number'

typeof

'1'// 'string'

typeof undefined // 'undefined'

typeof

true

// 'boolean'

typeof

symbol()

// 'symbol'

typeof b // b 沒有宣告,但是還會顯示 undefined

typeof

// 'object'

typeof

// 'object'

typeof console.log // 'function'

為什麼對於基本型別的null 卻返回了object呢

typeof

null

// 'object'

js的bug ??? 究竟是什麼樣的bug

為什麼會出現這種情況呢?因為在 js 的最初版本中,使用的是 32 位系統,為了效能考慮使用低位儲存了變數的型別資訊,000 開頭代表是物件,然而 null 表示為全零,所以將它錯誤的判斷為 object 。雖然現在的內部型別判斷**已經改變了,但是對於這個 bug 卻是一直流傳下來。

為了避免這種問題,我們可以通過 object.prototype.tostring.call(xx)進行判斷型別

TCP為什麼是面向連線的,為什麼是面向資料流的

tcp的核心是它要提供乙個可靠的傳輸協議。第乙個問題 tcp如果想要提供乙個可靠的傳輸協議,一定需要每次都建立連線嗎?三 次招手的意義在於讓通訊兩端確定,資訊剛才是可以從任意一端傳到另 一端的。如果傳送資料前我們沒有三次招手。那麼,由於tcp是乙個可靠 的傳輸協議,所以一定會提供超時重試的機制,而且...

為什麼是 pgsql ?

postgresql在國外很流行 在日本是僅次於apache的開源軟體 pgsql 使用程序 postgresql資料庫是多程序的架構.每乙個客戶連線都有乙個服務程序為其進行服務,也有共享記憶體,這一點是與orancle資料庫是相似的.postgresql使用一種客戶端 伺服器的模式.乙個伺服器程序...

為什麼是XML

乙個人倒是可以隨便很多,大概是票價 的原因,今天的參加者不多,也沒遇見熟人。一天下來,思維不斷的轉換,人也有點迷迷糊糊了。最後一場,居然趕錯了會場,開講才知道是db2的講座,主講王先生是 ibm 的 fellow,以前聽過幾次他的演講,沒什麼深刻印象,今天他講 db2 和 xml。這幾年來,偶和 x...