風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1632
发帖:72 篇
来自:保密
注册:2022/3/30 15:28:53
造访:2024/12/21 22:25:57
发帖:72 篇
来自:保密
注册:2022/3/30 15:28:53
造访:2024/12/21 22:25:57
[ 第 1 楼 ]
回复
* 空值合并操作符(??)
关于 ?? 的写法,最早见于 C#,PHP7 开始也支持这种写法,用于出现空值时指定一个默认值,其实 js 一直提供了一种可选方案,例如可以使用:
var nick = null || "Guest";
而新版支持了如下写法:
var nick = null ?? "Guest";
* 空值赋值运算符(??=)
左侧为null、undefined的时候,才会将右侧的值赋值给左侧。
var str;
str ??= "Black";
str ??= "White";
console.log(str); // 输出 Black
* 可选链(.?)
?. 后面跟不存在的属性 也不会报错,返回 undefined。
例如,我们知道,如下代码会报一个 “Cannot read properties of undefined”的错误:
var obj = {};
console.log(obj.aaa.bbb);
但是我们如果改成如下代码:
会发现 obj.aaa 不存在,然后直接返回 undefined 了,不用担心后面的 getNick 方法会出错。
注:此语法不支持所有 IE 版本。
关于 ?? 的写法,最早见于 C#,PHP7 开始也支持这种写法,用于出现空值时指定一个默认值,其实 js 一直提供了一种可选方案,例如可以使用:
var nick = null || "Guest";
而新版支持了如下写法:
var nick = null ?? "Guest";
* 空值赋值运算符(??=)
左侧为null、undefined的时候,才会将右侧的值赋值给左侧。
var str;
str ??= "Black";
str ??= "White";
console.log(str); // 输出 Black
* 可选链(.?)
?. 后面跟不存在的属性 也不会报错,返回 undefined。
例如,我们知道,如下代码会报一个 “Cannot read properties of undefined”的错误:
var obj = {};
console.log(obj.aaa.bbb);
但是我们如果改成如下代码:
[您可以先修改代码再运行]
注:此语法不支持所有 IE 版本。
2022/4/10 8:08:57
IP:已设置保密