最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

&&=、||= 和 ??= 有何用途?

&&=、||= 和 ??= 有何用途?

牧羊人nacy 2023-06-29 22:33:26
我在中看到過(guò)這個(gè)語(yǔ)法節(jié)點(diǎn).jsv15.0.1:&&=、||=和??=。但我不知道它有什么作用。有人知道嗎?
查看完整描述

3 回答

?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

這些稱(chēng)為邏輯賦值運(yùn)算符,總共有 3 個(gè):

  1. 邏輯與賦值(?&&=)

  2. 邏輯或賦值(?||=)

  3. 邏輯空賦值(???=)

從根本上來(lái)說(shuō),它們的作用都是相同的:as前面的邏輯運(yùn)算符&&,??和可以重寫(xiě)為。它們的唯一目的是替換更冗長(zhǎng)的代碼:||=x logical-operator= yx logical-operator (x = y)

  1. x &&= y如果 x不為真,則不執(zhí)行任何操作;如果 x 為,則將 x 的值更改為 y?。它等同于:

    if?(x)?{
    ??x?=?y?
    }
  2. x ||= y如果 x 為真,則不執(zhí)行任何操作;如果 x不為真,則將 x 的值更改為 y?。它等同于:

    if?(!x)?{
    ??x?=?y?
    }
  3. x ??= y如果 x 不為null ,則不執(zhí)行任何操作;如果 x 為null,則將 x 的值更改為 y?。它等同于:

    if?(x?===?null?||?x?===?undefined)?{
    ??x?=?y?
    }

以下是一些示例,可幫助您加深對(duì)這些內(nèi)容的理解:

const y = 'other value'


let def? ?= 'initial'? ? // truthy value

let zero? = 0? ? ? ? ? ? // not truth value

let undef = undefined? ? // nullish value


def? ?&&= y? ? // def = 'other value'

zero? &&= y? ? // zero = 0

undef &&= y? ? // undef = 'undefined'


def? ?||= y? ? // def = 'initial'

zero? ||= y? ? // zero = 'other value'

undef ||= y? ? // undef = 'other value'


def? ???= y? ? // def = 'initial'

zero? ??= y? ? // zero = 0

undef ??= y? ? // undef = 'other value'


查看完整回答
反對(duì) 回復(fù) 2023-06-29
?
BIG陽(yáng)

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

這些是新的邏輯賦值運(yùn)算符。它們類(lèi)似于更熟悉的運(yùn)算符*=,如+=、 等。

someVar &&= someExpression大致相當(dāng)于someVar = someVar && someExpression.

someVar ||= someExpression大致相當(dāng)于someVar = someVar || someExpression.

someVar ??= someExpression大致相當(dāng)于someVar = someVar ?? someExpression.

我說(shuō)“大致”是因?yàn)橛幸粋€(gè)區(qū)別 - 如果不使用右側(cè)的表達(dá)式,則不會(huì)調(diào)用可能的設(shè)置器。所以它更接近于:

someVar &&= someExpression就好像

if?(!someVar)?{
??someVar?=?someExpression;
}

等等。(不調(diào)用 setter 的事實(shí)不太可能對(duì)腳本產(chǎn)生影響,但這并非不可能。)這與其他傳統(tǒng)的簡(jiǎn)寫(xiě)賦值運(yùn)算符不同,它們無(wú)條件分配給變量或?qū)傩裕◤亩{(diào)用 setter) 。這是一個(gè)演示的片段:

const obj = {

? _prop: 1,

? set prop(newVal) {

? ? this._prop = newVal;

? },

? get prop() {

? ? return this._prop;

? }

};


// Setter does not get invoked:

obj.prop ||= 5;

??,如果您不熟悉的話(huà),它是空合并運(yùn)算符。如果左側(cè)是 或 ,它將計(jì)算null右側(cè)undefined。



查看完整回答
反對(duì) 回復(fù) 2023-06-29
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

a = a || b相當(dāng)于a ||= b=> 如果a為 true,a則返回,但如果a為 false,b則返回。

a = a && b相當(dāng)于a &&= b=> 如果a為 true,b則返回,但如果a為 false,a則返回。

a = a ?? b相當(dāng)于a ??= b=> 如果a只是 is nullor undefined,b則返回,但如果a是 truea返回。

注:null、undefined""、0、NaN均為 false

例子:

let a = -22

const b = false


a &&= b

console.log(a)   // false

let a = 0

const b = 'hello'


a ||= b

console.log(a)   // hello

let a = false

let b = true


a ??= b

console.log(a)   // false

let a = null

let b = true


a ??= b

console.log(a)   // true

如果你不明白,請(qǐng)?jiān)僮x一遍!


查看完整回答
反對(duì) 回復(fù) 2023-06-29
  • 3 回答
  • 0 關(guān)注
  • 300 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)