​‌JavaScript中的问号运算符(?、?.、??)主要的三种用法​

条件运算符(三元运算符)

条件运算符(三元运算符)的语法为:condition ? exprIfTrue : exprIfFalse。它用于根据条件表达式的结果来选择两个不同的表达式之一。如果条件为真,则表达式返回exprIfTrue的结果;否则返回exprIfFalse的结果‌。

可选链操作符(?.)

可选链操作符(?.)用于安全地访问嵌套对象的属性或方法,而不会因为中间某个引用为null或undefined而抛出错误。其语法为:obj?.prop。如果obj是null或undefined,表达式将立即返回undefined,否则继续访问属性或方法‌。

空值合并操作符(??)

空值合并操作符(??)用于提供一个默认值,当左侧的操作数为null或undefined时,返回右侧的操作数;否则返回左侧的操作数。其语法为:value ?? defaultValue。这常用于提供默认值,避免因变量为null或undefined而导致的错误‌。

示例代码

  1.  
    1.条件运算符‌:
  2.  
     
  3.  
    let value = condition ? trueValue : falseValue;
  4.  
     
  5.  
    2.可选链操作符‌:
  6.  
     
  7.  
    const obj = {a: {b: 1}}; console.log(obj?.a?.b); // 输出 1
  8.  
     
  9.  
    3.空值合并操作符‌:
  10.  
     
  11.  
    const value = null ?? 'default'; // 输出 'default'

这些用法使得JavaScript在处理条件判断、对象属性访问和提供默认值时更加灵活和安全。

 

2025-06-06 09:48:38【出处】:https://blog.csdn.net/kana_yonk/article/details/143858888

=======================================================================================

js里面?. 、?? 、??= 运算符的作用(ES2020)

JavaScript中,?.????= 是三个不同的运算符,各自有不同的用途和用法。

以下是详细解释:

可选链操作符(?.

作用: 可选链操作符用于在访问对象属性或调用函数时,处理可能为 nullundefined 的情况。如果链中某个部分是 nullundefined,操作将短路并返回 undefined,而不会抛出错误。

语法:

  1.  
    let result = object?.property;
  2.  
    let result = object?.method?.();
  3.  
    let result = array?.[index];

示例:

  1.  
    let user = {
  2.  
    name: "Alice",
  3.  
    address: {
  4.  
    city: "Wonderland"
  5.  
    }
  6.  
    };
  7.  
     
  8.  
    console.log(user?.address?.city); // 输出 "Wonderland"
  9.  
    console.log(user?.address?.street); // 输出 undefined
  10.  
    console.log(user?.contact?.phone); // 输出 undefined

Null 合并操作符(??

作用: Null 合并操作符用于在 nullundefined 时提供默认值。如果左侧操作数是 nullundefined,则返回右侧操作数,否则返回左侧操作数。

语法:

let result = value ?? defaultValue;

示例:

  1.  
    let name = null;
  2.  
    let defaultName = "Guest";
  3.  
     
  4.  
    console.log(name ?? defaultName); // 输出 "Guest"
  5.  
     
  6.  
    let age = 0;
  7.  
    let defaultAge = 18;
  8.  
     
  9.  
    console.log(age ?? defaultAge); // 输出 0

Null 合并赋值操作符(??=

作用: Null 合并赋值操作符用于在变量为 nullundefined 时给变量赋值。如果变量已经有值,则不会覆盖。

语法:

variable ??= value;

示例:

  1.  
    let name = null;
  2.  
    let defaultName = "Guest";
  3.  
     
  4.  
    name ??= defaultName;
  5.  
    console.log(name); // 输出 "Guest"
  6.  
     
  7.  
    let age = 0;
  8.  
    let defaultAge = 18;
  9.  
     
  10.  
    age ??= defaultAge;
  11.  
    console.log(age); // 输出 0

 

 

2025-06-06 10:15:18【出处】:https://blog.csdn.net/weixin_42097259/article/details/139495998

=======================================================================================

posted on 2025-06-06 09:49  jack_Meng  阅读(358)  评论(0)    收藏  举报

导航