• JS 问号?妙用


    // 1. ?
    var obj ={a:1,b:2}
    obj.c.a 
    // 会报错:Uncaught TypeError: Cannot read properties of undefined,因为obj.c 不存在 
    解决方法:
    obj.c?.a 
    // 等价于
    obj.c && obj.c.a
    // ?是可选链操作符,在引用为空null 或者 undefined 的情况下不会引起错误,该表达式短路返回值是 undefined
    // 2. ??
    // 空值合并运算符,在ES2020中新增,可以用来保证值不为 null 或者 undefined
    var a1="";
    var b1=a1??"default1" // ""
    var a2=undefined;
    var b2=a2??"default2" // default2
    var a3=null;
    var b3=a3??"default3" // default3
    
    // 注:(??) 直接和 AND(&&)和 OR(||)一起用会报错,如果要一起用,记得单独给 ?? 左右表达式加括号,如:
    b=(a??"dffdfdf") || 123 // dffdfdf
    b=(a??"dffdfdf") && 123 // 123
    // 3. 逻辑或(||)
    // 空值合并运算符将跳过 null,undefined
    // 逻辑或运算符会跳过 null,undefined,false
    false ?? 'hello'    // false
    false || 'hello'    // 'hello'
    // 如果不想用要虚值,可以使用 ||。如果只想检查是否为 null 或 undefined,就用 ??

     

  • 相关阅读:
    利用锚点制作简单索引效果
    BOM之location对象
    引入CSS
    对象继承
    indexOf、instanceOf、typeOf、valueOf详解
    JSON详解
    浏览器兼容性-JS篇
    gcc堆栈排列的建议(译文)
    VLAN 学习
    DPDK KNI 接口2
  • 原文地址:https://www.cnblogs.com/beileixinqing/p/16546341.html
Copyright © 2020-2023  润新知