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