為什麼typeof(null)返回的是object

2021-10-24 19:50:32 字數 271 閱讀 3244

首先要知道,這並不是設計者希望出現的結果,這是乙個bug。後來也提出過修復這個bug的提案,但是由於這個bug影響的範圍太大,也就沒有及時更正,越到後面影響範圍也越廣,所以就不修復了。

js中的基本資料型別都儲存在32位的二進位制單元當中,低三位的數字用於表示該資料的型別。低三位數字和表示型別的對應關係如下:

typeof的實現就是通過判斷低三位的數字來判斷值型別的。當傳入乙個null的時候,因為null儲存時32位的數字表示都是0,所以低三位也是0,typeof就將其認定為object型別的了。

AfxGetMainWnd 為什麼返回NULL

通常認為afxgetmainwnd 會返回主視窗的指標。實際上有 前提條件 的。即返回當前呼叫afxgetmainwnd 的執行緒的主視窗指標。所以如果在程式的主線程中呼叫afxgetmainwnd 則返回程式 主線程 的主視窗指標。如果在輔助線程 createthread 中呼叫afxgetmai...

為什麼 HANDLE 返回值不同

如果你注意各種返回 handle 值的函式,你會發現它們有些返回 null 如 createthread 而有些則返回 invalid handle value 如 createfile 你不得不查詢文件找出每種函式在失敗時返回什麼。為什麼返回值不統一?如你所猜測,是歷史原因。這些值是用於相容16位...

為什麼要返回煉表頭指標()

訪問鍊錶的時候,都是從頭結點開始的,當你用完的時候也要回到頭結點,這是通用的方法,如果不,有下列兩種情況。1.如果不返回呢,這個鍊錶就無法用了,應為無法抓住乙個節點,是無法順藤摸瓜,找到其它元素了。2.如果返回其它節點呢,如果是迴圈鍊錶或者雙向鍊錶,這是可以訪問的,雖然程式可讀性不好,但要是單項鍊表...