js中“”與null和0相等---自動轉型

luxika發表於2011-12-14
參考:java裡面那個StringUtils.isEmpty

var aa = 0;
if(aa.toString()=="") //false
alert("111");

如果不顯示將比較的兩個表示式轉換成型別相同時,那麼:
相同的字串、數值上相等的數字、相同的物件、相同的 Boolean 值或者(當型別不同時)能被強制轉化為上述情況之一,均被認為是相等的。

此處,將aa和""均轉換成Boolean型別,所以相等。
有一點值得注意的是,能被強制轉化為上述情況之一
相等運算子 (==、!=)

如果兩表示式的型別不同,則試圖將它們轉換為字串、數字或 Boolean 量。
NaN 與包括其本身在內的任何值都不相等。
負零等於正零。
null 與 null 和 undefined 相等。
相同的字串、數值上相等的數字、相同的物件、相同的 Boolean 值或者(當型別不同時)能被強制轉化為上述情況之一,均被認為是相等的。
其他比較均被認為是不相等的。

恆等運算子 (===、!==)

除了不進行型別轉換,並且型別必須相同以外,這些運算子與相等運算子的作用是一樣的

相關文章