中級 › typeof null === 'object' の罠 › パターン1
typeof null === 'object' の罠
typeof演算子はnullに対して"object"を返します。
1 function describe(value) { 2 if (typeof value === "object") { 3 return value.label; 4 } 5 return "primitive"; 6 } 7 console.log(describe(________________)); ^
main.js:3
return value.label;
^
TypeError: Cannot read properties of null (reading 'label')
空欄を埋めて実行を通す
typeof nullは"object"を返すため、null対策のつもりのtypeofチェックをすり抜けてしまいます。言語仕様初期からのバグ扱いの挙動で、今も修正されていません。
次の問題