您好,登錄后才能下訂單哦!
小編給大家分享一下JavaScript的空值合并運(yùn)算符是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
今年ECMAScript 2020(ES2020)將發(fā)布!自 2015 年 ECMAScript 2015(ES6)發(fā)布以來,我們每年都對(duì) JavaScript 語言進(jìn)行更新。
目錄
||
)在ES2020中,我們獲得了在其他語言中( 如 C# 和 PHP)早已可用的功能:空值合并運(yùn)算符。我一直喜歡這個(gè)名字,因?yàn)槊慨?dāng)我說這個(gè)名字時(shí),都會(huì)覺得自己很聰明。
空值合并運(yùn)算符將會(huì)遍歷列表,并返回第一個(gè)不是 null 或 undefined 的值。
重要的是要注意,空值合并運(yùn)算符僅查找 null
或 null
值??罩岛喜⑦\(yùn)算符接受虛值(Falsy values)。
讓我們看一些例子。請(qǐng)記住,JavaScript 的空值合并運(yùn)算符將遵循 ??
鏈,直到找到非空或未定義的對(duì)象。如果找到 false
,它將返回該值。
null ?? 'hi' // 'hi' undefined ?? 'hey' // 'hey' false ?? 'hola' // false 0 ?? 'bonjour' // 0 'first' ?? 'second' // first
在下面的例子中,我們?cè)谧兞恐写鎯?chǔ)了一些值:
let person // <-- person is undefined here person ?? { name: 'chris' } // { name: 'chris' } const isActive = false isActive ?? true // false
鏈接 JavaScript 的空值合并運(yùn)算符
JavaScript 的空值合并運(yùn)算符的妙處在于,我們可以根據(jù)需要將其進(jìn)行多次鏈接。
null ?? undefined ?? false ?? 'hello' // false null ?? '' ?? 'hello' // ''
可以在從外部來源獲取數(shù)據(jù)時(shí)使用。比如我們想從多個(gè)地方抓取博客的文章。然后可以確定哪個(gè)文章將會(huì)成為我們的精選帖子:
// 簡(jiǎn)化代碼。 使用 fetch requires 需要比這更多的代碼 const firstBlogPost = await fetch('...') const secondBlogPost = await fetch('...') const defaultBlogPost = { title: 'Default Featured Post' } const featuredBlogPost = firstBlogPost ?? secondBlogPost ?? defaultBlogPost
如果不確定某些值是否存在,上面是設(shè)置默認(rèn)值的好方法。
||
)如果要消除虛值,可以用 邏輯或運(yùn)算符 (||
)。
本質(zhì)上,它與空合并運(yùn)算符的作用相同,只是它消除了虛值。
null
,undefined
null
,undefined
,false
false ?? 'hello' // false false || 'hello' // 'hola'
如果你不想用要虛值,可以使用 ||
。如果只想檢查是否為 null
或 undefined
,就用 ??
。
在撰寫本文時(shí),最新版本的 Chrome、Firefox、Edge 和 Safari 可以使用空值合并運(yùn)算符。
以上是“JavaScript的空值合并運(yùn)算符是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。