var foo;
console.log(typeof foo); //"undefined"
if(typeof foo === 'undefined')
console.log(1);
if(!foo)
console.log(2);
undefined上記の例では、は として評価されるため、コンソールは「1」と「2」の両方をログに記録しますfalse。null、NaN、""(空文字列) などでも同じことが起こります。
typeof評価されたブール値を使用するよりも、演算子を使用して文字列値を比較する方が一般的ですか? 読みやすさ以外に違いはありますか?長所と短所はありますか?