首页 > 编程语言 >白骑士的JavaScript教学JavaScript语法基础篇之运算符与表达式 2.2.4 逻辑运算符

白骑士的JavaScript教学JavaScript语法基础篇之运算符与表达式 2.2.4 逻辑运算符

时间:2024-10-08 13:19:40浏览次数:8  
标签:逻辑 false 示例 JavaScript 运算符 let 2.2 true

        逻辑运算符是用于布尔逻辑运算的符号,它们常用于控制流程和条件判断,帮助程序员编写更复杂和更动态的条件语句。在JavaScript中,主要的逻辑运算符包括逻辑与(‘&&‘)、逻辑或(‘||‘)、逻辑非(‘!‘)以及一些其他特定场景的运算符。逻辑运算符用于将多个布尔值或表达式组合在一起,形成更复杂的条件判断。它们通常用于‘if‘语句、‘while‘循环、‘for‘循环等控制结构中。

JavaScript中的主要逻辑运算符有:

  • 逻辑与(‘&&‘)
  • 逻辑或(‘||‘)
  • 逻辑非(‘!‘)

        此外,还有两个与逻辑运算相关的特殊运算符:

  • 空值合并运算符(‘??‘)
  • 逻辑与赋值运算符(‘&&=‘)
  • 逻辑或赋值运算符(‘||=‘)
  • 空值合并赋值运算符(‘??=‘)

        下面将详细介绍每种运算符的用法和特点。

逻辑与运算符(‘&&‘)

        逻辑与运算符‘&&‘用于将两个布尔表达式组合在一起,只有当两个表达式都为‘true‘时,整个表达式的结果才为‘true‘。

示例

let a = true;
let b = true;
console.log(a && b); // 输出 true

let c = false;
console.log(a && c); // 输出 false

特点

  • 如果第一个操作数为‘false‘,则不会再计算第二个操作数(短路运算)。
  • 常用于判断多个条件是否同时成立。

示例

let x = 5;
let y = 10;

if (x > 0 && y > 0) {
    console.log("Both numbers are positive.");
}

逻辑或运算符(‘||‘)

        逻辑或运算符‘||‘用于将两个布尔表达式组合在一起,只要其中一个表达式为‘true‘,整个表达式的结果就为‘true‘。

示例

let a = true;
let b = false;
console.log(a || b); // 输出 true

let c = false;
console.log(b || c); // 输出 false

特点

  • 如果第一个操作数为‘true‘,则不会再计算第二个操作数(短路运算)。
  • 常用于判断至少一个条件是否成立。

示例

let x = -5;
let y = 10;

if (x > 0 || y > 0) {
    console.log("At least one number is positive.");
}

逻辑非运算符(‘!‘)

        逻辑非运算符‘!‘用于取反一个布尔值,如果表达式为‘true‘,则‘!‘运算符会将其变为‘false‘,反之亦然。

示例

let a = true;
console.log(!a); // 输出 false

let b = false;
console.log(!b); // 输出 true

特点

  • ‘!‘运算符通常用于检查某个条件是否不成立。

示例

let isValid = false;

if (!isValid) {
    console.log("The data is not valid.");
}

空值合并运算符(‘??‘)

        空值合并运算符‘??‘用于在两个表达式之间进行选择,返回第一个非‘null‘或‘undefined‘的操作数。

示例

let userName = null;
let defaultName = "Guest";
let name = userName ?? defaultName; // name的值是"Guest"

特点

  • 当左侧操作数为‘null‘或‘undefined‘时,返回右侧操作数。

示例

let result = null ?? "default value"; // result的值是 "default value"
let result2 = "Hello" ?? "default value"; // result2的值是 "Hello"

逻辑与赋值运算符(‘&&=‘)

        逻辑与赋值运算符‘&&=‘用于在左侧操作数为‘true‘时,才对其进行赋值操作。

示例

let x = true;
let y = 10;
x &&= y; // x的值是10

let a = false;
a &&= y; // a的值仍为false

特点

  • 常用于在某个条件成立时更新变量值。

示例

let isActive = true;

isActive &&= "Active"; // isActive的值是 "Active"

逻辑或赋值运算符(‘||=‘)

        逻辑或赋值运算符‘||=‘用于在左侧操作数为‘false‘时,才对其进行赋值操作。

示例

let x = false;
let y = 10;
x ||= y; // x的值是10

let a = true;
a ||= y; // a的值仍为true

特点

  • 常用于在某个条件不成立时设置默认值。

示例

let isActive = false;

isActive ||= "Inactive"; // isActive的值是 "Inactive"

空值合并赋值运算符(‘??=‘)

        空值合并赋值运算符‘??=‘用于在左侧操作数为‘null‘或‘undefined‘时,才对其进行赋值操作。

示例

let x = null;
let y = 10;
x ??= y; // x的值是10

let a = 5;
a ??= y; // a的值仍为5

特点

  • 常用于在变量未初始化或无效时设置默认值。

示例

let userName = null;

userName ??= "Guest"; // userName的值是 "Guest"

总结

        逻辑运算符是JavaScript中控制程序逻辑的核心工具。通过这些运算符,你可以轻松地创建复杂的条件判断,从而实现更强大的功能和更动态的逻辑。理解短路运算和特殊运算符(如空值合并运算符)的行为,可以帮助你编写更高效和健壮的代码。在日常开发中,合理运用逻辑运算符,能够让代码逻辑更加清晰易懂,也能提升代码的可维护性和可靠性。

标签:逻辑,false,示例,JavaScript,运算符,let,2.2,true
From: https://blog.csdn.net/JeremyTC/article/details/142738740

相关文章

  • 白骑士的JavaScript教学JavaScript语法基础篇之运算符与表达式 2.2.5 条件运算符(三元
            条件运算符,也称为三元运算符,是JavaScript中唯一的三目运算符,它提供了一种简洁的方式来编写条件判断和赋值语句。通过使用条件运算符,你可以在一行代码中实现简单的条件判断,从而让代码更加紧凑和易读。条件运算符        条件运算符由三个部分组成:条件......
  • 视野修炼-技术周刊第104期 | 下一代 JavaScript 工具链
    欢迎来到第104期的【视野修炼-技术周刊】,下面是本期的精选内容简介......
  • JavaScript 小知识:轻松搞定 ArrayBuffer 到 Base64 的转换
    关键词:ArrayBuffer,Base64,栈溢出,TextDecoder,btoa,性能优化,JavaScript,兼容性摘要本文探讨了在JavaScript中将ArrayBuffer转换为Base64字符串时遇到的栈溢出问题,并提供了几种实用的解决方案。我们将通过生动的比喻来解释相关概念,比较不同方法的性能和兼......
  • JavaScript 小知识:轻松搞定 ArrayBuffer 到 Base64 的转换
    关键词:ArrayBuffer,Base64,栈溢出,TextDecoder,btoa,性能优化,JavaScript,兼容性摘要本文探讨了在JavaScript中将ArrayBuffer转换为Base64字符串时遇到的栈溢出问题,并提供了几种实用的解决方案。我们将通过生动的比喻来解释相关概念,比较不同方法的性能和兼......
  • JavaScript 小知识:轻松搞定 ArrayBuffer 到 Base64 的转换
    关键词:ArrayBuffer,Base64,栈溢出,TextDecoder,btoa,性能优化,JavaScript,兼容性摘要本文探讨了在JavaScript中将ArrayBuffer转换为Base64字符串时遇到的栈溢出问题,并提供了几种实用的解决方案。我们将通过生动的比喻来解释相关概念,比较不同方法的性能和兼......
  • Java vs JavaScript:类型系统的艺术 - 从 Object 到 any,从静态到动态
    关键词:Java,JavaScript,TypeScript,类型系统,静态类型,动态类型,软件开发,编程语言比较摘要:本文深入探讨Java、JavaScript和TypeScript三种语言的类型系统特点,从建筑学角度比喻它们的设计理念,分析各自在处理灵活数据结构时的优劣,并思考类型系统对软件开发的深......
  • Java vs JavaScript:类型系统的艺术 - 从 Object 到 any,从静态到动态
    关键词:Java,JavaScript,TypeScript,类型系统,静态类型,动态类型,软件开发,编程语言比较摘要:本文深入探讨Java、JavaScript和TypeScript三种语言的类型系统特点,从建筑学角度比喻它们的设计理念,分析各自在处理灵活数据结构时的优劣,并思考类型系统对软件开发的深......
  • Java vs JavaScript:类型系统的艺术 - 从 Object 到 any,从静态到动态
    关键词:Java,JavaScript,TypeScript,类型系统,静态类型,动态类型,软件开发,编程语言比较摘要:本文深入探讨Java、JavaScript和TypeScript三种语言的类型系统特点,从建筑学角度比喻它们的设计理念,分析各自在处理灵活数据结构时的优劣,并思考类型系统对软件开发的深......
  • Java vs JavaScript:类型系统的艺术 - 从 Object 到 any,从静态到动态
    关键词:Java,JavaScript,TypeScript,类型系统,静态类型,动态类型,软件开发,编程语言比较摘要:本文深入探讨Java、JavaScript和TypeScript三种语言的类型系统特点,从建筑学角度比喻它们的设计理念,分析各自在处理灵活数据结构时的优劣,并思考类型系统对软件开发的深......
  • Java - 3 运算符
    Java-3运算符算术运算符/*++a:先运算后取值a++:先取值后运算*/inti=1;i=i++;//(1)temp=i;(2)i=i+1;(3)i=temp;System.out.println(i);//1inti=1;i=++i;//(1)i=i+1;(2)temp=i;(3)i=temp;System.out.println(i);//2System.out.prin......