欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

es6中??與||區(qū)別小結(jié)

 更新時(shí)間:2024年01月02日 08:26:29   作者:奔跑的代碼!  
本文主要介紹了es6中??與||區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

??||都是邏輯運(yùn)算符,但它們的作用不同。
??是空值合并運(yùn)算符,它用于檢查左側(cè)的表達(dá)式是否為nullundefined。如果是nullundefined,則返回右側(cè)的表達(dá)式;如果不是,則返回左側(cè)的表達(dá)式

let foo = null;
let bar = foo ?? 'default'; // bar 的值為 'default'

let baz; 
let qux = baz ?? 'default'; // qux 的值為 'default'

||是邏輯或運(yùn)算符,它用于檢查左側(cè)的表達(dá)式是否為假。如果左側(cè)的表達(dá)式為假,則返回右側(cè)的表達(dá)式;如果左側(cè)的表達(dá)式為真,則返回左側(cè)的表達(dá)式。在JavaScript中,只有null、undefined''、0、NaN被視為假值,其他值都被視為真值。

let foo = 'hello';
let bar = foo || 'default'; // bar 的值為 'hello'

let baz; 
let qux = baz || 'default'; // qux 的值為 'default'

因此,??||的區(qū)別在于它們的邏輯行為和使用場(chǎng)景。??用于空值合并,而||用于邏輯或

?. 鏈判斷運(yùn)算符

左側(cè)的對(duì)象是否為null或undefined,若是則不再往下運(yùn)算,而是返回undefined,否則一直運(yùn)算下去,直到返回最后一個(gè)值。
鏈判斷運(yùn)算符?.讀取深度嵌套在對(duì)象鏈中的屬性值,而不必驗(yàn)證每個(gè)值。當(dāng)值為空時(shí),表達(dá)式停止計(jì)算并返回 undefined。

let person = {
    name: '拾柒',
    body: {
        color: 'yellow',
        height: 179,
        weight: 70,
        sex: null
    },
    action: function(name){
        console.log(name)
    }
}
let res = person?.body?.age; // => undefined 
// 等價(jià)于
let res = person&& person.body&& person.body.location // 作用就是判斷person下的body下的age是否為null或者undefined,當(dāng)其中一鏈為null或者undefined時(shí)就直接返回undefined

let res2 = person?.sex; // => undefined

鏈判斷運(yùn)算符?.有三種寫法。

  • obj?.prop // 對(duì)象屬性是否存在(例子如上)
  • obj?.[expr] // 同上
  • func?.(...args) // 函數(shù)或?qū)ο蠓椒ㄊ欠翊嬖?/li>
person ?. action ?. ('peter'); // peter

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

忽略錯(cuò)誤值(如 0 和空字符串)的同時(shí)指定默認(rèn)值。
左側(cè)的對(duì)象是否為 undefined 或 null,若是的話,直接返回下一個(gè)值,若不是的話,則直接返回前一個(gè)值。
判斷方式和 || 一樣
區(qū)別就是:

  • ?? 只判斷 undefined 和 null
function query(item) {
    return item ?? {}
}
// 等價(jià)于
function query(item) {
    if (item == null || item == undefined) {
        return {}
    } else {
        return item;
    }
}
  • || 判斷假值 undefined、null、''、false、0
function query(item) {
    return item || {}
}
// 等價(jià)于
function query(item) {
    if (item === 0 || item === "" || item === false || item === null || item === undefined) {
        return {}
    } else {
        return item;
    }
}

??= 空賦值運(yùn)算符

僅當(dāng)值為 null 或 undefined 時(shí),此賦值運(yùn)算符才會(huì)賦值(沒(méi)想出來(lái)和??比有什么適用場(chǎng)景...)

function config(options) {
    options.duration ??= 100;
    options.speed ??= 25;
    return options;
}

config({ duration: 125 }); // { duration: 125, speed: 25 }
config({}); // { duration: 100, speed: 25 }

&&= 與賦值運(yùn)算符

當(dāng)前者不是假值時(shí),可賦值后者的值,若是假值時(shí),直接賦值假值

let A = 'abc';
let a = 1;
let b = 0;
let c = false;
let d = null;
let e = undefined;
let f = '';
A &&= '拾柒'; // '拾柒'
a &&= '拾柒'; // '拾柒'
b &&= '拾柒'; // 0
c &&= '拾柒'; // false
d &&= '拾柒'; // null
e &&= '拾柒'; // undefined
f &&= '拾柒'; // ''

!! 雙非

用來(lái)做類型判斷,在第一步!(變量)之后再做邏輯取反運(yùn)算

var a;
if(a != null && typeof(a) != undefined && a != ''){
    //a有內(nèi)容才執(zhí)行的代碼  
}

等價(jià)于

if(!!a){
    //a有內(nèi)容才執(zhí)行的代碼...  
}

到此這篇關(guān)于es6中??與||區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)es6 ??與||內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

最新評(píng)論