判断符号??,?. ,! ,!! ,|| ,&&,?: 意思以及举例

  1. ??(逻辑空合并运算符)

    • 含义 :如果左边的值是 nullundefined,则返回右边的值,否则返回左边的值。

    • 示例

      复制代码
      let a = null;
      console.log(a ?? 10);  // 输出:10
      let b = 5;
      console.log(b ?? 10);  // 输出:5
  2. ?.(可选链运算符)

    • 含义 :用于安全地访问对象深层次的属性,避免出现 Cannot read property 'xxx' of undefined 的错误。

    • 示例

      复制代码
      const obj = { a: { b: 1 } };
      console.log(obj?.a?.b);  // 输出:1
      console.log(obj?.c?.d);   // 输出:undefined
  3. !(逻辑非)

    • 含义:将值转换为布尔值的反面。非布尔值会被强制转换为布尔值。

    • 示例

      复制代码
      console.log(!true);     // 输出:false
      console.log(!"hello");  // 输出:false
      console.log(!0);        // 输出:true
  4. !!(双重非)

    • 含义:将任意类型的值强制转换为布尔值。

    • 示例

      复制代码
      console.log(!!"");       // 输出:false
      console.log(!!"hello"); // 输出:true
      console.log(!!0);       // 输出:false
      console.log(!!1);       // 输出:true
  5. ||(逻辑或)

    • 含义:如果左边的值是真值,则返回左边的值;否则返回右边的值。

    • 示例

      复制代码
      console.log(true || false);  // 输出:true
      console.log(false || 10);   // 输出:10
      console.log("" || "hello");// 输出:"hello"
  6. &&(逻辑与)

    • 含义:如果左边的值是真值,则返回右边的值;否则返回左边的值。

    • 示例

      复制代码
      console.log(true && false); // 输出:false
      console.log(true && 10);   // 输出:10
      console.log("" && "hello"); // 输出:""
  7. ?:(三元条件运算符)

    • 含义 :根据条件判断返回不同的值,属于一种简洁的 if-else 表达方式。

    • 示例

      复制代码
      const num = 5;
      const isEven = num % 2 === 0 ? "偶数" : "奇数";
      console.log(isEven);       // 输出:"奇数"

这些运算符在前端开发中非常常用,能够让代码更加简洁和高效。

相关推荐
倾颜11 分钟前
React 19 源码主线拆解 04:Fiber 到底是什么,React 为什么需要 Fiber?
前端·react.js·源码阅读
AI攻城狮17 分钟前
国产大模型能力大比拼,社区有话说
前端
Legendary_00817 分钟前
LDR6500:USB‑C DRP PD协议芯片技术详解与应用实践
c语言·开发语言
2301_8009769344 分钟前
正则表达式
开发语言·python·正则表达式
故事还在继续吗1 小时前
C++20关键特性
开发语言·c++·c++20
IT_陈寒1 小时前
Vite的public文件夹放静态资源?这坑我替你踩了
前端·人工智能·后端
涵涵(互关)1 小时前
GoView各项目文件中的相关语法2
前端·javascript·vue.js
子兮曰1 小时前
别让爬虫白嫖你的导航站了:纯免费,手把手实现加密字体防爬
前端·javascript·后端
青少儿编程课堂1 小时前
2026青少儿信息素养大赛备赛指南!Python/Scratch/C++备考要点
开发语言·c++·python
小村儿2 小时前
连载06 - Hooks 源码深度解析:Claude Code 的确定性自动化体系
前端·后端·ai编程