JavaScript 是全球數百萬前端開發人員最喜愛的語言,但與任何工具一樣,它也有其怪癖。
你有沒有想過當你對 null 使用 typeof 運算符時會發生什么?嗯,這是 JavaScript 中最奇怪、最令人困惑的事情之一。
typeof 運算符可以很好地處理“Hello World”這樣的文字,因為它返回 string 作為其類型。 數字和布爾值也是如此。
但是,當涉及到 null 時,您可能會期望它返回類似 null 或 undefined 的內容,對嗎?但你可能會驚訝地發現,當我們在 null 上使用 typeof 運算符時,它實際上返回 object.
這個結果看起來很奇怪,很容易讓開發者犯錯,尤其是那些剛接觸 JavaScript 的人。
但是為什么 JavaScript 會這么做呢?
要理解這一點,我們必須回到 20 世紀 90 年代 JavaScript 的早期。
當時,當該語言最初開發時,其設計存在錯誤。值 null 被賦予了一個特殊的內部代碼,類似于用于對象的內部代碼。結果,當 typeof 運算符檢查null時,它錯誤地將其識別為對象。
雖然這是一個無意的錯誤,但它仍然被認為是一個錯誤,因為它不符合邏輯。
不幸的是,這個錯誤已經存在了很長時間,現在修復它可能會破壞許多依賴當前行為的現有代碼。
但隨著時間的推移,許多開發人員已經學會忍受它并找到解決方法。
這提醒我們所有人,沒有一種編程語言是完美的,無論使用得多么廣泛。
我們的想法是理解這些怪癖,成為更好的開發人員,并為下一代編寫更可靠且無錯誤的代碼。
想要了解更多與 Web 開發和 AI 相關的內容,請隨時關注我。讓我們一起學習、一起成長!