console.log(🎉);|

yunChuans

园龄:3年4个月粉丝:6关注:0

js中“??“和“?.“怎么用?

??:空值合并操作符

逻辑操作符,左侧为null和undefined时,才返回右侧的数

?. :可选链操作符

可以读取位于连接对象链深处属性的值,不必明确验证链中的每个引用是否有效
功能类似于“.” 链式操作符,不同之处在于,在引用为空null 或者 undefined 的情况下不会引起错误,该表达式短路返回值是 undefined
与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。

const fa = {
      name: 'lming',
      son: {
        name: 'lqq'
      }
    };
const duc = fa.duc?.name;
console.log(duc);
//输出undefined

使用:

1.获取一个对象更深层次的属性,即obj中的first属性下的second属性。为了避免报错, 获取之前要判断first属性是否为null或者undefined,在获取second属性 使用“与”运算符

let num = obj.first && obj.first.second;
使用?.可选链操作符

let num = obj.first?.second;

可选链与函数调用

调用一个可能不存在的方法时,如果被调用的方法不存在,使用可选链可以使表达式自动返回undefined而不是抛出一个异常

let result = someInterface.customMethod?.();
注:如果存在一个属性名且不是函数, 使用 ?. 仍然会产生一个 TypeError 异常 (x.y is not a function).

本文作者:云川

本文链接:https://www.cnblogs.com/zychuan/p/17510038.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   yunChuans  阅读(113)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 恋ダコ (茧•爱) 恋ダコ
  2. 2 君がいて水になる 正しい偽りからの起床
君がいて水になる - 正しい偽りからの起床
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.