js中的??和?.
html5吧
全部回复
仅看楼主
level 9
js中的??和?.
2021年12月16日 07点12分 1
level 9
空值合并操作符(??):是一个逻辑操作符
先说具体的用法:只有当左侧为null和undefined时,才会返回右侧的数;反之返回左侧的值
2021年12月16日 07点12分 2
level 9
const str = null ?? 'string';
console.log(str);
//打印输出: "default string" (双问号右侧的
2021年12月16日 07点12分 3
level 9
const str = 0 ?? 666;
console.log(str );
//打印输出: "0" (双问号左侧的值)
2021年12月16日 07点12分 4
level 9
const emptyStr = ""; // 空字符串,是一个假值false
const Test = emptyStr ?? "默认值";
console.log(Test);
//打印输出: "" (双问号左侧的值)
// 这里注意:(emptyStr的值虽然是空字符串是假值,
// 但并不是 null 或者 undefined, 所以这里
2021年12月16日 07点12分 5
level 9
let nestedProp = 网页链接 && obj.first
2021年12月16日 07点12分 6
level 9
为了避免报错,在访问obj.first.second之前,要保证 网页链接 的值既不是 null,也不是 undefined。如果只是直接访问 obj.first.second,而不对 网页链接 进行校验,则有可能抛出错误;
有了可选链操作符(?.),在访问 网页链接 之前,不再需要明确地校验 网页链接 的状态,再并用短路计算获取最终结果
2021年12月16日 07点12分 7
level 9
通过使用 ?. 操作符取代 . 操作符,JavaScript 会在尝试访问之前,先隐式地检查并确定既不是 null 也不是 undefined。如是 null 或者 undefined,表达式将会短路计算直接返回 undefined。
2021年12月16日 07点12分 8
1