JavaScript/Typescript 中 ? 和 ?? 的区别

2025-06-10

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
Enter fullscreen mode Exit fullscreen mode

??

?? 是空值合并运算符。它用于在对象/变量未定义或为空时初始化它。

例子

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
Enter fullscreen mode Exit fullscreen mode

欢迎在评论区留言,提出建议。
谢谢!祝您编程愉快!

鏂囩珷鏉ユ簮锛�https://dev.to/saimwebhr/difference- Between-and-in-javascripttypescript-f4d
PREV
CSS 中的简单微交互(第一部分):汉堡菜单图标
NEXT
你不需要 Express 就可以开始使用 socket.io