js小记录

139 阅读1分钟

?.和??使用

1、可选链操作符( ?. )

?.允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值

obj = {
        name:‘小王’,
        age:‘22’
       }
let objTwo = obj?.year
console.log(year) // undefined

2、空值合并操作符(??)

??是一个逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数

const nullValue = null;
const valA = nullValue ?? “valA 的默认值”;
console.log(valA);    // “valA 的默认值”;

3、合并使用

此外空值合并操作符也可以在使用可选链时设置一个默认值,如下:

let customer = {
                name: “小九”,
                details: { age: 18 }
                };

let customerCity = customer?.city ?? “暗之城”;
console.log(customerCity); // “暗之城”