Qraft(クラフト) 資格・学習クイズアプリ

JavaScript入門 練習問題 8:等価演算子と厳密等価演算子

次のコードで、値がnullまたはundefinedかを判定するのに最も適切な比較演算子はどれですか?

  1. userInput == null
  2. userInput === null
  3. userInput != ""
  4. userInput !== ""
  5. 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を見逃してしまいます。

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)