typeof null が「オブジェクト」なのはなぜですか? 質問する

typeof null が「オブジェクト」なのはなぜですか? 質問する

私は『Web 開発者のためのプロフェッショナル Javascript』の第 4 章を読んでいますが、そこには 5 つのプリミティブ型は undefined、null、boolean、number、string であると書かれています。

nullがプリミティブである場合、なぜ がtypeof(null)返されるのでしょうか"object"?

それはnull参照渡しされる (ここではすべてのオブジェクトが参照渡しされると想定しています) ということなので、プリミティブではないということではないでしょうか?

ベストアンサー1

からtypeofオペレータの動作に関するMDNページ:

null

// これはJavaScriptの始まりから存在しています
typeof null === 'オブジェクト';

JavaScript の最初の実装では、JavaScript の値は型タグと値として表されていました。オブジェクトの型タグは 0 でした。はnullNULL ポインタ (ほとんどのプラットフォームでは 0x00) として表されました。その結果、null の型タグは 0 となり、戻り値は「オブジェクト」になりましたtypeof。(参照

ECMAScriptの修正案が提案されましたが(オプトイン経由)、拒否されました. その結果typeof null === 'null'、 .

おすすめ記事