JavaScript入門 練習問題 8:等価演算子と厳密等価演算子
次のコードで、値がnullまたはundefinedかを判定するのに最も適切な比較演算子はどれですか?
- userInput == null
- userInput === null
- userInput != ""
- userInput !== ""
- typeof userInput === 'undefined'
正解と解説を見る
正解:userInput == null
`null == undefined` はJavaScript仕様の特別ルールとして`true`になるため、`値 == null` と書くだけでnullとundefinedの両方をまとめて判定できます。
【正解の理由】
`userInput == null` は`userInput`がnullでもundefinedでも`true`を返すため、「値が入力されていない状態」を1行で判定できます。
【不正解の理由】
• userInput === null:型変換を行わない厳密等価のため、nullのみにマッチしundefinedを見逃してしまいます。
• userInput != "":「空文字列ではない」という判定であり、値が未入力かどうかの判定にはなりません。
• userInput !== "":同様に空文字列との比較であり、nullやundefinedを直接判定するものではありません。
• typeof userInput === 'undefined':undefinedの判定はできますが、nullの場合はtypeofが'object'になるためnullを見逃してしまいます。