js中數字0與空字符串的問題


js中數字0與空字符串的問題

 

在開發前端的時候,因為有很多值數據,但這些值從后台傳過來的時候,有很多可能性,如:null,undefined,空字符,"null","undefined",排除這些,其他應該就差不多是正常的了、出現這些數據的時候,前端頁面統一顯示''(空字符)。

開始的時候我寫的是value!="",后來發現,當value等於0的時候結果是flase,也就是說不走這個判斷下面的語句

1
if  (i!= '' ){ //操作語句;}

換下邏輯發現,0=='' 為true

原因其實也很簡單:

js中有默認的隱試轉換。

以下是數字和字符串隱試轉換規則:

  1. 任何非零的數為true,0為false。

  2. 字符串來說任何非空字符串為 true,空字符串為false  

所以左邊 0轉換成布爾為false ,右邊“”轉化成布爾為false ,false==false, 所以結果為true,想非自動隱試轉換判斷可以使用=== 或者 !==  替代  ==和!= 例如:zdconsole.log(""===0) //false

當數據有時候就是0,就是要顯示0,解決辦法是:value==="",這個是時候就等於false了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM