兩個JS的不好設計
阿新 • • 發佈:2017-12-20
異常 如果 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的不好設計