问号问号(??)
空值合并操作符??是一个逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。
例如
console.log(null ?? "xx")
输出 xx
console.log(1 ?? "xx")
输出 1
问号点 (?.)
可选链操作符(?.)可选链操作符允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。 使用它的好处是引用为null 或者 undefined的情况下不会引起错误。
语法:obj?.prop obj?.[expr] arr?.[index] func?.(args)
例如
var obj={a:{b:1}}
console.log(obj?.a?.b)
输出1
console.log(obj?.a?.c)
输出 undefined
问号冒号(?: )
这是三目运算,具体表达式是(condition ? exprIfTrue : exprIfFalse)
该表达式的含义是 条件condition是真,则执行exprIfTrue ,否则执行exprIfFalse
举个例子大家就懂了
var n = 10;
console.log((n >= 11) ? "a" : "b");
输出b
当 var n = 12;
输出a
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341