JavaScript/Typescript 中 ? 和 ?? 的区别
大家好,如果您打开了这篇文章,说明您对这两个运算符、它们的工作原理以及它们之间的区别感到好奇。所以,事不宜迟,让我们通过一个代码示例来深入了解细节。
?
? 是可选链接运算符,通常也称为对象的空值检查器。其主要用途是检查对象是否存在。
例子
const user = {
id: 5,
name: "John"
};
console.log(user?.name); //John
console.log(user?.fullName); //undefined, program won't crash.
console.log(user.fullName);
//TypeError: Cannot read property ‘fullName’ of undefined
??
?? 是空值合并运算符。它用于在对象/变量未定义或为空时初始化它。
例子
const user = {
id: 5,
name: "",
firstName: null,
lastName: undefined
};
console.log(user.name??"Johnny Depp");// prints ""
console.log(user.firstName??"Johnny");// prints Johnny
console.log(user.lastName??"Depp");// prints Depp
欢迎在评论区留言,提出建议。
谢谢!祝您编程愉快!