神人操作符:可选链与空值合并

分享两个工作中常用的操作符:可选连和空值合并

?. 操作符

中文翻译为 可选链操作符 ,允许开发者读取深嵌在对象链中的属性值,而不必显示验证每个引用。当引用为空时,表达式停止计算并返回一个未定义的值

let johan = {
  name: "johan",
  age: 28,
  lover: {
    name: "masami",
    age: 34,
  },
};

// 没有 ?. 操作符之前
const johanLover = johan.lover && johan.lover.name;
console.log(johanLover);
// 使用 ?. 操作符
const johanLover = johan.lover?.name;
console.log(johanLover); // masami
// 如果没有值则返回 undefined
const johanLover = johan.lover?.sex;
console.log(sex); // undefined

?? 操作符

另一个会用的是空值合并 ??

控制合并可以真正的检查 nullish 值,而不是 falsely 值。什么是 nullish 值,什么又是 falsely 值?

falsely 值:空字符串、数字0、undefined、null、false、NaN 等

然后,很多情况下你指向检测一个变量是否为空值——undefined 或者 null,就像变量可以是一个空字符串甚至是一个假值

640

参考资料