1

重複の可能性:
変数===未定義vs.変数のタイプ===「未定義」</a>

undefinedそれが改ざんされていないと仮定すると、次の同等物はありますか?

typeof a === 'undefined'

a === undefined

[私が尋ねる理由は、Parsley.jsの作者が書くのが好きなようだからです'undefined' !== typeof someExpression。]

4

2 に答える 2

5

これらの2つのアプローチは、1つを除いてほとんど同じです。変数が変数として定義されていない場合、発生しtypeofません。ReferenceError: a is not defineda

たとえば、typeofアプローチはもっと確実です。

于 2013-01-27T20:55:45.437 に答える
1

undefinedはい、改ざんされていない場合は同等です。typeof未定義との直接比較よりも優先される唯一の理由はundefined、のような他のものに再定義できるためですundefined = 5。また、VisioNで指摘されてReferenceErrorいるように、関数パラメータのコンテキストでチェックしていない場合は、が発生する可能性がaありdefined globallyます。グローバルコンテキストで未定義と直接比較するときにを取得しないようにするには、次ReferenceErrorの手順を実行する必要があります。

window.a === undefined
于 2013-01-27T20:54:30.877 に答える