您好,登錄后才能下訂單哦!
這篇文章主要介紹JavaScript中使用擴(kuò)展運(yùn)算符進(jìn)行空檢查的最佳方法有哪些,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
你還記得你寫的第一個空檢查代碼嗎?當(dāng) JavaScript 還沒有現(xiàn)在這個完善時,我曾在我的舊代碼中這樣寫:
if (foo !== null && foo !== undefined) { }
后來,我的生命被簡單的 if 拯救!
if (foo) {}
只要條件值 foo 不是下列值,都將為真值“
null
undefined
NaN
空字符串 ("")
false
除了簡單的 if 之外,現(xiàn)代 JavaScript
的可選鏈操作符 ?. 與空值合并運(yùn)算符 ?? 可以使我們的代碼更加簡潔
可選鏈操作符是訪問嵌套對象屬性的安全方式。這意味著在訪問一長串對象屬性時,我們不必進(jìn)行多次空檢查。當(dāng)嘗試訪問可能不存在的對象屬性時,可選鏈操作符將會使表達(dá)式更短、更簡明
以下示例檢查客戶地址的郵政編碼是否為 null :
const client = { name: 'Liu Xing', address: { zipcode: '1234' } } // 老的取值方式 if (client && client.address && client.address.zipcode) {} // 更加現(xiàn)代的可選鏈操作符方式 if (client?.address?.zipcode) {}
空值合并操作符( ?? )是一個邏輯操作符,當(dāng)左側(cè)的操作數(shù)為 null 或者 undefined
時,返回其右側(cè)操作數(shù),否則返回左側(cè)操作數(shù)。
const defaultMessage = 'Hello JavaScript 之禪' const msg = defaultMessage ?? 'Hello Liu Xing'; console.log(msg); // Hello JavaScript 之禪'
如果 defaultMessage
是 null 或者 undefined
則將打印出 Hello Liu Xing
當(dāng)我們按順序使用它時,它會變得更強(qiáng)大:
console.log(firstName ?? lastName ?? 'anonymous')
在這個例子中,如果 firstName
不是 null/undefined
,它將顯示 firstName, 否則,如果 lastName
不是 null/undefined
,它將顯示 lastName。 最后,如果它們都為 null/undefined
,它將顯示“anonymous
”。
以上是“JavaScript中使用擴(kuò)展運(yùn)算符進(jìn)行空檢查的最佳方法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。