重複の可能性:
変数===未定義vs.変数のタイプ===「未定義」</a>
undefined
それが改ざんされていないと仮定すると、次の同等物はありますか?
typeof a === 'undefined'
と
a === undefined
?
[私が尋ねる理由は、Parsley.jsの作者が書くのが好きなようだからです'undefined' !== typeof someExpression
。]
重複の可能性:
変数===未定義vs.変数のタイプ===「未定義」</a>
undefined
それが改ざんされていないと仮定すると、次の同等物はありますか?
typeof a === 'undefined'
と
a === undefined
?
[私が尋ねる理由は、Parsley.jsの作者が書くのが好きなようだからです'undefined' !== typeof someExpression
。]
これらの2つのアプローチは、1つを除いてほとんど同じです。変数が変数として定義されていない場合、発生しtypeof
ません。ReferenceError: a is not defined
a
たとえば、typeof
アプローチはもっと確実です。
undefined
はい、改ざんされていない場合は同等です。typeof
未定義との直接比較よりも優先される唯一の理由はundefined
、のような他のものに再定義できるためですundefined = 5
。また、VisioNで指摘されてReferenceError
いるように、関数パラメータのコンテキストでチェックしていない場合は、が発生する可能性がa
ありdefined globally
ます。グローバルコンテキストで未定義と直接比較するときにを取得しないようにするには、次ReferenceError
の手順を実行する必要があります。
window.a === undefined