首頁 > web前端 > js教程 > 為什麼 JavaScript 中 `typeof null` 回傳「object」?

為什麼 JavaScript 中 `typeof null` 回傳「object」?

Mary-Kate Olsen
發布: 2024-12-03 22:38:09
原創
805 人瀏覽過

Why Does `typeof null` Return

儘管不是原始類型,為什麼 typeof Null 回傳「Object」?

在閱讀《Web 開發人員的專業 Javascript》時,您遇到一個困惑:本章指出原語包括 null,但 typeof(null) 產生「object」。由於原語通常按值傳遞,因此物件按引用傳遞,這似乎與 null 的原始性質相矛盾。

型別操作的歷史根源

深入研究 JavaScript 的歷史,我們發現這種異常源自於該語言的最初實現。在 JavaScript 的初期,值的特徵是型別標籤和值。物件的類型標記為 0。由 NULL 指標 (0x00) 表示的 Null 無意中被指派了類型標記 0。

Remains of the Past

null 與「object」類型標記的這種意外關聯導致了錯誤的 typeof(null) 結果。儘管語言隨後進行了更新和進步,但由於擔心破壞現有程式碼,這種行為仍然存在。

修復提議但被拒絕的

已努力糾正此問題通過在ECMAScript 中提出可選修復,旨在將typeof(null) 返回為“null” 。然而,該提議遭到拒絕。它的實作會帶來重大變化,可能會破壞依賴現有行為的遺留程式碼。

當前情況

因此,特殊的 typeof(null) 行為仍然存在嵌入 JavaScript 結構中。 JavaScript 中的型別操作仍然是該語言的一個微妙且受歷史影響的方面,這一持久的怪癖就是例證。

以上是為什麼 JavaScript 中 `typeof null` 回傳「object」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板