3

if((typeof OA != 'undefined') && OA )とはどう違いif(OA)ますか?

前者のステートメントは機能します。後者は、現在の関数の実行を静かに停止します。

(初歩的な質問かもしれません)

ありがとう!

4

3 に答える 3

4

if(OA)OAが定義されてい ない場合は失敗します。が定義されているかどうかをtypeof OA != 'undefined'チェックします。OA

var OA;
if(OA){
}

これは機能します。

if(OA){
}

これは機能しません: OA is not defined.

typeof OA != 'undefined' && OA変数にアクセスする前に定義されているかどうかをチェックします

于 2012-04-17T17:12:16.020 に答える
0
if ((typeof OA != 'undefined') && OA)

これは、変数OAが定義されているかどうかを最初にチェックします。そうであれば、ブール値にキャストされて評価されます。

if(OA)

これは存在すると仮定OAし、すぐにブール値にキャストして評価します。

2 番目の例は、変数が宣言されていない場合に JavaScript 例外をスローしOAます。最初の例ではそれを回避しています。

javascriptの複数の意味の詳細については、こちらの回答を参照してください。undefined

于 2012-04-17T17:20:34.543 に答える
0

コンパイラは、if(OA) で評価しようとする typeof の場合、OA を評価しようとしません。

于 2012-04-17T17:12:33.690 に答える