当前位置: 首页 > news >正文

JavaScript 中的逻辑运算符

文章目录

      • 1. 逻辑 AND(&&)
      • 2. 逻辑 OR(||)
      • 3. 逻辑 NOT(!)
      • 4. 逻辑空值合并运算符(??)
      • 5. 短路求值

JavaScript 中的逻辑运算符主要包括以下几种:

1. 逻辑 AND(&&)

  • 规则:如果左侧值为 false,则返回左侧值;否则返回右侧值。
  • 用法
    console.log(true && false);  // false
    console.log(5 && 10);        // 10 (5 为真,返回 10)
    console.log(0 && 10);        // 0 (0 为假,返回 0)
    

2. 逻辑 OR(||)

  • 规则:如果左侧值为 true,则返回左侧值;否则返回右侧值。
  • 用法
    console.log(true || false);  // true
    console.log(0 || 10);        // 10 (0 为假,返回 10)
    console.log(5 || 10);        // 5 (5 为真,返回 5)
    

3. 逻辑 NOT(!)

  • 规则:取反,truefalsefalsetrue
  • 用法
    console.log(!true);   // false
    console.log(!0);      // true
    console.log(!"");     // true
    console.log(!"abc");  // false (非空字符串为 true)
    

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

  • 规则:如果左侧值为 nullundefined,则返回右侧值;否则返回左侧值。
  • 用法
    console.log(null ?? "默认值");   // "默认值"
    console.log(undefined ?? "默认"); // "默认"
    console.log(0 ?? "默认值");       // 0 (0 不是 null/undefined,不会触发默认值)
    console.log("" ?? "默认值");      // "" (空字符串不是 null/undefined)
    

5. 短路求值

  • 逻辑运算符的特性会导致“短路求值”,即:

    • && 遇到 false 直接返回,不执行右侧代码;
    • || 遇到 true 直接返回,不执行右侧代码。
    function test() {
      console.log("执行了 test");
      return true;
    }
    
    console.log(false && test());  // false(test 不会执行)
    console.log(true || test());   // true(test 不会执行)
    
http://www.dtcms.com/a/36484.html

相关文章:

  • 项目实战--网页五子棋(匹配模块)(5)
  • 【网络安全 | 漏洞挖掘】Stripe 子系统 TaxJar 的 ATO 漏洞挖掘之旅
  • 【第五节】C++设计模式(创建型模式)-Prototype(原型)模式
  • 【NLP 23、预训练语言模型】
  • 码率和采样率
  • UE_C++ —— Gameplay Modules
  • C++和OpenGL实现3D游戏编程【连载23】——几何着色器和法线可视化
  • 白帽黑客系列教程之Windows驱动开发(64位环境)入门教程(六)
  • Pytorch实现论文:基于多尺度融合生成对抗网络的水下图像增强
  • Python常见面试题的详解20
  • Starlink卫星动力学系统仿真建模第十讲-基于SMC和四元数的卫星姿态控制示例及Python实现
  • Hot100 贪心算法
  • Blob转Base64
  • 火绒终端安全管理系统V2.0网络防御功能介绍
  • VMware17下Ubuntu22.04设置本地共享文件夹
  • 大白话Vue2和Vue3 组件通信,方式有哪些,都有什么区别?
  • Linux System V - 消息队列与责任链模式
  • Web前端开发——HTML基础
  • Java 基本数据类型
  • 【虚拟仪器技术】labview操作指南和虚拟仪器技术习题答案(一)
  • SpringBoot两种方式接入DeepSeek
  • Trae IDE Remote-SSH不能连接问题解决办法
  • 8.spring对logback的支持
  • P8665 [蓝桥杯 2018 省 A] 航班时间
  • 企业财务数据分析-投资回报指标ROA
  • 机器学习数学基础:34.点二列
  • MySQL清除无用的二进制日志(Binlog)
  • 新数据结构(13)——I/O
  • Linux离线环境安装miniconda并导入依赖包
  • 1.✨学习系统浅探