JavaScript 中的逻辑 AND (&&) 运算符

2025年4月13日 | 阅读 7 分钟

逻辑运算符是 JavaScript 的重要组成部分,JavaScript 是一种强大且灵活的 Web 开发语言。逻辑与(&&)运算符是执行逻辑运算的基本 JavaScript 逻辑运算符 之一。

如果数组中的所有布尔操作数都为 true,则逻辑与(&&)运算符也为 true。如果其中一个操作数不满足条件,则结果为 false。

更普遍地说,该运算符 在所有操作数都为 true 时返回最后一个操作数的值。在从左到右处理条件时,会检测到第一个 false 或不正确操作数的值。

本文将全面介绍 AND 运算符的语法、应用和实际示例。

JS AND (&&) 运算符是什么?

如果两个操作数(运算符两侧的值)都为 true,则逻辑与(&&)运算符返回 true。如果任一操作数为 false,则结果为 false。

语法

该语法显示了条件和“AND”运算符。

expression1 && expression2

描述

使用逻辑与(&&)运算符从左到右计算操作数时,会立即返回遇到的第一个 false 操作数的值;如果所有值都为 true,则返回最后一个操作数的值。

如果一个值可以转换为 true,则该值被视为 true。如果一个值可以转换为 false,则该值被视为 false。

可以转换为 false 的表达式包括以下示例

  • false;
  • null;
  • NaN;
  • 0;
  • 空字符串 ("" 或 '' 或 ``);
  • undefined。

JavaScript AND 运算符条件

当运算符满足条件时,我们可以看到布尔值作为输出。下表显示了 && 运算符的可能结果

表达式 1 / 第一个操作数表达式 2 / 第二个操作数结果
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

示例:基本 AND 运算符

以下示例显示了基本 AND 运算符及其布尔格式的运算符。

示例

立即执行

输出

输出显示了 && 运算符的结果。

Logical AND (&&) Operator in JavaScript

示例:带变量的基本 AND 运算符

以下示例显示了基本 AND 运算符以及用于操作条件的变量。如果两个变量值相等,则输出显示第一个输出。

示例

立即执行

输出

输出显示了使用变量的 && 运算符的结果。

Logical AND (&&) Operator in JavaScript

示例:带布尔值的基础 AND 运算符

以下示例显示了基本 AND 运算符以及 布尔 值。

示例

立即执行

输出

输出显示了与布尔值一起使用的 && 运算符的结果。

Logical AND (&&) Operator in JavaScript

JS AND 运算符保留非布尔值

尽管 && 运算符可以应用于非布尔操作数,但其返回结果始终可以转换为布尔原始值,因此它是一个布尔运算符。使用 Boolean 构造函数或双 NOT 运算符将返回值(或任何表达式)显式更改为匹配的布尔值。

示例

以下示例显示了基本 AND 运算符及其非布尔格式的输出。

示例

立即执行

输出

输出显示了与非布尔值一起使用的 && 运算符的结果。

Logical AND (&&) Operator in JavaScript

短路求值

逻辑与语句是短路运算符。由于每个操作数都被转换为布尔值,因此 AND 运算符不会评估任何其他操作数;相反,它会停止并返回在一次转换后被发现为 false 的操作数的原始值。

语法

看看下面的短路求值语法。

描述

由于第一个操作数(某个 false 表达式)被评估为 false,因此 expr 部分永远不会被评估。如果 expr 是一个函数,则函数永远不会被调用。

示例

以下示例显示了基本 AND 运算符及其短路求值条件。

示例

立即执行

输出

输出显示了带有短路求值的 && 运算符的结果。

Logical AND (&&) Operator in JavaScript

运算符优先级

AND 运算符的优先级高于 OR 运算符,因此 && 运算符在 || 运算符之前执行。

示例

以下示例显示了基本 AND 运算符及其运算符优先级。

示例

立即执行

输出

输出显示了带有运算符优先级的 && 运算符的结果。

Logical AND (&&) Operator in JavaScript

移除嵌套括号

如果满足某些约束,则始终可以从复杂表达式中删除括号,因为逻辑表达式是从左到右求值的。

示例

以下示例显示了基本 AND 运算符以及移除嵌套括号后的情况。

示例

立即执行

输出

输出显示了移除嵌套括号后的 && 运算符的结果。

Logical AND (&&) Operator in JavaScript

JavaScript AND 运算符与三元运算符

JavaScript 包含一个条件运算符,用于根据某些变量及其条件赋值。

语法

以下语法同时显示了三元运算符和 AND 运算符。

示例

以下示例显示了三元运算符与 AND 逻辑运算符

示例

立即执行

输出

输出显示了与三元运算符的 && 运算符的结果。

Logical AND (&&) Operator in JavaScript

AND (&&) 运算符的特性

  • 逻辑求值:只有当两个操作数都为 true 时,它才返回 true。
  • 短路:如果第一个操作数为 false,则不计算第二个操作数。
  • 返回的值而不是仅仅是布尔值:要么是最后一个 true 操作数,要么是第一个 false 操作数。
  • 用于条件语句:通常用于在 **if** 语句中组合多个条件
  • 可与多种数据类型配合使用:数组、对象、字符串、数字等都可以使用。

AND (&&) 运算符的优势

  • 短路提高了效率:如果第一个条件为 false,JavaScript 不计算第二个条件,从而提高了效率。
  • 简化了条件语句:可以使用简洁的条件,而不是多个 **if** 语句。
  • 有利于默认值赋值:当满足条件时,可以在表达式中使用它来赋值。
  • 鼓励非布尔原则:它返回实际值,而不仅仅是 true 或 false,这与严格的逻辑条件不同。

AND (&&) 运算符的缺点

  • 与非布尔值的异常行为
    如果不正确处理,它可能会产生意外结果,因为它返回最后一个 true 值或第一个 false 值。
  • 调试复杂表达式很困难
    当与多种数据格式和多个条件结合使用时,可能会使调试变得复杂。
  • 初学者不易理解
    当它返回非布尔值时,只期望 true 或 false 输出的开发人员可能会感到困惑。
  • 不适用于空值(null 或 undefined)的默认赋值
    空值合并运算符 (??) 作为 null 或 undefined 数据的后备,但 && 运算符则不能。

结论

AND (&&) 运算符是 JavaScript 的一个关键组成部分,经常用于条件执行、短路评估和逻辑条件。学生可以通过理解它的工作原理来编写更有效、更少出错的 JavaScript 代码。