1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Javascript】undefinedとnullと判定式

1
Last updated at Posted at 2026-08-05

undefinednullのみを検出したい時があると思います。
そんな場合は、以下のシンプルな条件式で解決します。

value == null

この式では、valueがnullundefinedだった場合のみtrueとなり、0’0’false、空文字列などは全てfalseが返ります。

等価演算子 (==) – JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Equality

オペランドの一方が null または undefined である場合、もう一方も null または undefined であれば true を返します。それ以外の場合は false を返します。

引用によればundefinedによって比較してもよさそうに感じます。

value == undefined

しかしながら、これはESLintなどでは禁止されています。

no-undefined – ESLint – プラグイン可能なJavaScriptリンター
https://eslint.org/docs/latest/rules/no-undefined

何故undefinedを識別子として使用してはいけないか

端的に言うと、undefinedがjavascriptの予約語として登録されていないからです。
予約語として登録されていないと、以下のようなことができてしまいます。

字句文法 – JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Lexical_grammar#%E4%BA%88%E7%B4%84%E8%AA%9E

const shadowUndefined = () => {
    const undefined = 'shadowed'
    console.log(undefined) // shadowed

    let x
    console.log(x == undefined) // false
}

予約語として登録されているnullでは、上記のようなことは起こりません(エラーが発生します)。

また、古のjavascriptではグローバル変数であるundefinedすら上書き可能でした。

window.undefined = 1 // !!?
// undefined === 1

昔からjavascriptを触っているおじさん達は、undefinedを識別子として使用することが禁忌という意識が、なんとなく意識の底にあったように思います。

Undefinedのみを検出したいときはどうするか

typeofを使用するのが最も安全です。

typeof value === 'undefined'

typeof演算子は、値の型がなんであるかを返します。
これであればグローバル及びローカル変数であるundefinedがどうなっていても判定することが可能です。
また、そもそも対象の変数が宣言されていなくても、エラーになることがありません。

undefined – JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/undefined

……とはいえ、宣言されていない変数をチェック機会がそれほどあるか。またundefinedなる変数を宣言する機会がどれくらいあるかを考えると、現代のjavascriptではundefinedを直接識別子に叩き込むことも少なくないようですね。

value === undefined

おじさんたちを苦い顔にさせたい皆さんは、この手法を使ってみましょう。

まとめ

undefinednullを検出したい時は

value == null

undefinedのみを検出したい時は

typeof value === 'undefined'

をそれぞれ使用しましょう。

1
1
1

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?