最近在編寫項目過程當中,發現本身對if語句判斷的時候,在面對一些0、字符串爲空的狀況下,本身猶豫了那麼幾秒ide
甚至有時候還可怕的寫下了醜陋的代碼測試
if(str !== ''){// do some things}複製代碼
今天,特地寫了這篇文章記錄下,讓本身長長記性,同時後面有空去翻翻紅寶書對象
考慮的狀況有如下:字符串
if ('') { console.log('訪問空字符串,能經過') }// 沒輸出複製代碼
if (0) { console.log('訪問0,能經過') }// 沒輸出複製代碼
if (undefined) { console.log('訪問undefined,能經過') }// 沒輸出if(!undefined){console.log('非undefined,能經過') }// 非undefined,能經過複製代碼
if (null) { console.log('null,能經過') }// 沒輸出if(!null){console.log('非null,能經過') }// 非null,能經過複製代碼
let obj = { foo: "foo", num: 0}if (obj.bar) { console.log('訪問對象不存在屬性時候,能經過') }// 沒輸出if (obj.foo) { console.log('訪問對象已存在屬性時候,能經過') }// 訪問對象已存在屬性時候,能經過複製代碼
if(NaN){console.log('訪問NaN,能經過') } // 沒輸出if(!NaN){console.log('不爲NaN,能經過') }// 不爲NaN,能經過複製代碼