空值合并运算符
控制合并运算符是:
??
用法示例:
var nick=null;
var result=nick??"null nick"//result="null nick"
如果操作符左边是null,undefined,会返回操作符右边的值
否则返回左边的值
可选链
可选链是
?.
用法示例
let person={
nick:"jack"};
person?.age//undefined
person?.age?.mounth//undefined
person?.age.mounth//Uncaught TypeError: Cannot read property 'mounth' of undefined
可选链在获取对象的属性时,对于获取不存在的key的key时,不会像原来一样报错~停止,危害到整个程序的运行,而是会返回undefined
对于函数的获取,有独特的写法:
let person={
getName:function(){
console.log("jack")}
};
//正确的方法
person.getName?.()//undefined 输出 jack
person.getAge?.()//undefined
//错误的方法
person?.getName()//undefined 输出 jack
person?.getAge()//Uncaught TypeError: person?.getAge is not a function
可以看出,只有将?.加在函数的()前才是正确的使用方式