? 通常用于三元运算符中,它允许你根据某个条件来返回两个可能的结果之一。其语法结构为 条件 ? 值1 : 值2。如果条件为真,则返回 值1;如果条件为假,则返回 值2。


let age = 15;
let beverage = (age >= 21) ? "Beer" : "Juice";
console.log(beverage); // 输出 "Juice"

而 ?? 是空值合并运算符(Nullish Coalescing Operator),它用于在左侧的操作数为 null 或 undefined 时返回其右侧的操作数,否则返回左侧的操作数。这对于在JavaScript中处理可能为 null 或 undefined 的值时非常有用。
例如:

var obj ={}
console.log(obj?.a?.b ?? 233 ) //233
var obj={a:{b:1}}
console.log(obj?.a?.b??233) //1
//运算符的使用并不局限于Vue,而是JavaScript语言本身的一部分,
//因此你可以在任何JavaScript环境中使用它们。

总结来说,? 和 ?? 在Vue中的区别主要体现在它们的用途和语法结构上:? 用于三元运算符,根据条件返回两个值之一;而 ?? 用于空值合并,当左侧值为 null 或 undefined 时返回右侧值

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐