溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaScript的空值合并運(yùn)算符是什么

發(fā)布時(shí)間:2020-12-04 11:38:54 來源:億速云 閱讀:156 作者:小新 欄目:web開發(fā)

小編給大家分享一下JavaScript的空值合并運(yùn)算符是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

今年ECMAScript 2020(ES2020)將發(fā)布!自 2015 年 ECMAScript 2015(ES6)發(fā)布以來,我們每年都對(duì) JavaScript 語言進(jìn)行更新。

目錄

  • 使用 JavaScript 空值合并運(yùn)算符
  • 使用實(shí)例
  • 空值合并運(yùn)算符與邏輯或(||
  • 瀏覽器支持
  • 總結(jié)

在ES2020中,我們獲得了在其他語言中( 如 C# 和 PHP)早已可用的功能:空值合并運(yùn)算符。我一直喜歡這個(gè)名字,因?yàn)槊慨?dāng)我說這個(gè)名字時(shí),都會(huì)覺得自己很聰明。

空值合并運(yùn)算符將會(huì)遍歷列表,并返回第一個(gè)不是  null  或  undefined 的值。

重要的是要注意,空值合并運(yùn)算符僅查找 nullnull 值??罩岛喜⑦\(yùn)算符接受虛值(Falsy values)。

使用 JavaScript 空值合并運(yùn)算符(??)

讓我們看一些例子。請(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í)例

可以在從外部來源獲取數(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)算符與邏輯或(||

如果要消除虛值,可以用 邏輯或運(yùn)算符 (||)。

本質(zhì)上,它與空合并運(yùn)算符的作用相同,只是它消除了虛值。
  • 空值合并運(yùn)算符將跳過 nullundefined
  • 邏輯或運(yùn)算符會(huì)跳過 null,undefined,false
false ?? 'hello'    // false
false || 'hello'    // 'hola'

如果你不想用要虛值,可以使用 ||。如果只想檢查是否為 nullundefined,就用 ??

瀏覽器支持

在撰寫本文時(shí),最新版本的 Chrome、Firefox、Edge 和 Safari 可以使用空值合并運(yùn)算符。

以上是“JavaScript的空值合并運(yùn)算符是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(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)容。

AI