1. 程式人生 > >兩個JS的不好設計

兩個JS的不好設計

異常 如果 body def logs pan urn ali 後端

1.相等判斷

if(a){}
相當於
if(a == ture){}

然而下面的相等判斷都為true

0 == false
"" == false
"false" == false
undefined == false
null == false

假設你有一個需求,根據後端返回顯示數字。
如果返回null,顯示-1
你寫下如下代碼:

if(a){
    return a;
}
else{
    return -1;
}

這段代碼有問題,問題是a==0時,返回-1,而不是返回0

2.new Date

new Date(null) //Thu Jan 01 1970 08:00:00 GMT+0800 (CST)。
new Date(0) // Thu Jan 01 1970 08:00:00 GMT+0800 (CST)
new Date(false)  // Thu Jan 01 1970 08:00:00 GMT+0800 (CST)
new Date(undefined) // Invalid Date
new Date('')  //Invalid Date。

對於 new Date的傳參,需註意特別判斷。

由1、2可知JS裏面做判斷,需===或者把其它異常值轉換為一個異常值是較好的實踐。

兩個JS的不好設計