js中數字0與空字符串的問題
在開發前端的時候,因為有很多值數據,但這些值從后台傳過來的時候,有很多可能性,如:null,undefined,空字符,"null","undefined",排除這些,其他應該就差不多是正常的了、出現這些數據的時候,前端頁面統一顯示''(空字符)。
開始的時候我寫的是value!="",后來發現,當value等於0的時候結果是flase,也就是說不走這個判斷下面的語句
1
|
if
(i!=
''
){
//操作語句;}
|
換下邏輯發現,0=='' 為true
原因其實也很簡單:
js中有默認的隱試轉換。
以下是數字和字符串隱試轉換規則:
-
任何非零的數為true,0為false。
-
字符串來說任何非空字符串為 true,空字符串為false
所以左邊 0轉換成布爾為false ,右邊“”轉化成布爾為false ,false==false, 所以結果為true,想非自動隱試轉換判斷可以使用=== 或者 !== 替代 ==和!= 例如:zdconsole.log(""===0) //false
當數據有時候就是0,就是要顯示0,解決辦法是:value==="",這個是時候就等於false了