0
var foo;

console.log(typeof foo); //"undefined"

if(typeof foo === 'undefined')
    console.log(1);

if(!foo)
    console.log(2);

undefined上記の例では、は として評価されるため、コンソールは「1」と「2」の両方をログに記録しますfalsenullNaN""(空文字列) などでも同じことが起こります。

typeof評価されたブール値を使用するよりも、演算子を使用して文字列値を比較する方が一般的ですか? 読みやすさ以外に違いはありますか?長所と短所はありますか?

4

1 に答える 1

4

特効薬はなく、完全に目的次第です。

変数が「偽」であることを知る必要がある場合 - を使用し、それが, , 空if (!var)の文字列かどうかを正確に知る必要がある場合- を使用しますnull0if (var === null)

于 2013-01-25T09:47:26.873 に答える