var foo;
console.log(typeof foo); //"undefined"
if(typeof foo === 'undefined')
console.log(1);
if(!foo)
console.log(2);
在我的例子上文中,控制檯將記錄都爲「1」和「2」,由於undefined
計算爲false
。同樣的事情會發生的null
,NaN
,""
(空字符串)等使用評估的變量值,而不是實際類型
是不是更常見的是使用typeof
操作和比較字符串值,而不是使用評估布爾值?除了可讀性還有什麼區別嗎?任何優點和缺點?
第二種方式會崩潰,如果變量尚未被聲明。 – nnnnnn