美文网首页
js中.?、??、??=的用法和含义

js中.?、??、??=的用法和含义

作者: Iterate | 来源:发表于2021-11-01 16:53 被阅读0次

    · ?. 后面跟不存在的属性 也不会报错,返回 undefined // 可选链(.?)
    · ?? 赋值给前面,当前面的值不存在时 // 空值合并运算符(??)
    · 左侧为null、undefined的时候,才会将右侧的值赋值给左侧 ??= // 空值赋值运算符(??=)

    let a = 0;
    let c = { name:'buzhimingqianduan' }
    
    if(!!a || a === 0 ){
        b = a;
    }else{
        b = c;
    }
    

    对就是上面那个例子,当我们想判断一个值存在,但是它等于0的时候,我们也需要当作它存在,于是就有了上面那样的例子,其实我们还可以这样做

    let b;
    let a = 0;
    let c = { name:'buzhimingqianduan' }
    
    b = a ?? c;
    

    `
    上面的例子,当a除了undefined、或者null之外的任何值,b都会等于a,否则就等于c.

    和上面的例子类似
    let b = '你好';
    let a = 0
    let c = null;
    let d = ’123‘
    b ??= a;  // b = “你好”
    c ??= d  // c = '123'
    

    当??=左侧的值为null、undefined的时候,才会将右侧变量的值赋值给左侧变量.其他所有值都不会进行赋值.同样在一些场景下,可以省略很多代码.

    趣味问答时间:
    let a;
    let b = "不知名前端"
    let c = null;
    let d = 0;
    let e;
    
    e ??= a?.b ?? c ?? d?.a ?? b;
    console.log(e)
    

    `

    相关文章

      网友评论

          本文标题:js中.?、??、??=的用法和含义

          本文链接:https://www.haomeiwen.com/subject/nkazaltx.html