0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JavScript初心者の勘違いシリーズ④| (おまけ)undefined、null、NaNを含む==での比較

0
Last updated at Posted at 2026-07-05

JavaScript初心者の勘違い

JavaScriptを学ぶ中で、「なんとなくこうだろう」と思っていたことについて、仕様や実際の挙動をもとに整理し基礎を固めていくシリーズです。
「自分も同じ勘違いをしていた!」という方の参考になれば嬉しいです。

はじめに

前回、ChatGPTに出題してもらった「Object型[]を含む==での比較」の例題
を使い、その方法について学習しました。
(前回記事はこちら)
今回は、初心者が間違いやすいnull、undefined、NaNの比較に関する例題を通じて、
仕様を確認しながら学習深めていこうと思います。
問題はこちらです。

null == undefined
NaN == NaN

null == undefined について

考え方

ECMAScriptの仕様で、以下記載があります。
参考:ECMASctipt 型変換の仕様

2. If x is null and y is undefined, return true.
3. If x is undefined and y is null, return true.

x == yという式があったとき、

  • xがnull、yがundefinedのときはtrueになる
  • xがundefined、yがnullのときはtrueになる

と書いてあります。

そのため、結果はtrueとなります。
この型の組み合わせの結果は、特に内部的な型変換がされるわけでもなく
結果が決まっているのですね。

NaN == NaN について

考え方

NaNは何とも(自分自身とも)比較できない という性質をもちますので、
結果はfalseとなります。
もちろんNaN === NaNfalseとなります。

NaNに関してはこちらの記事
勘違いした比較式も紹介しながら解説していますので、ぜひご覧いただけたらと思います。

次回

今回でいったん型変換関連のシリーズは完結です。
今後も引き続き、学習を進める中で生じた勘違いは「勘違いシリーズ」として
続けていきたいと思います。
また、備忘録として自分用に知識的なまとめも投稿していければと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?