JavaScript 逻辑运算符

逻辑运算符用于测试真假值。它们主要用于条件语句中,帮助我们基于某些条件来控制程序流程。JavaScript 中有三种逻辑运算符:&& (与), || (或), 和 ! (非)。

逻辑运算符的优先级

在 JavaScript 中,不同的运算符有不同的优先级。逻辑运算符的优先级如下:

  • ! 的优先级最高
  • && 的优先级次之
  • || 的优先级最低

这意味着在表达式中,! 会先于 &&|| 计算,而 && 又会先于 || 计算。

示例代码

在这个例子中,由于 ! 的优先级最高,所以它会首先被计算。接着,&& 会被计算,最后才是 ||

逻辑运算符的短路求值

逻辑运算符还有一个特性,叫做“短路求值”。这意味着,当可以确定整个表达式的值时,JavaScript 不会继续计算表达式的其余部分。

  • 对于 && 运算符,如果第一个操作数为 false,则不会计算第二个操作数,因为整个表达式的结果已经确定。
  • 对于 || 运算符,如果第一个操作数为 true,则不会计算第二个操作数,因为整个表达式的结果已经确定。

示例代码

-- -------------------- ---- -------
--- - - --
--- - - --

---- -- - - -- -
    -------------------------
- ---- -
    -------------- - ------------------------
-

---- -- - - -- -
    -------------- -- -------------
-

在这个例子中,第一个 if 语句中的条件使用了 && 运算符。由于 a 的值为 0,这会导致 b / a 的计算结果出错。但是,由于 && 的短路求值特性,第二个操作数不会被计算,因此避免了运行时错误。

第二个 if 语句中的条件使用了 || 运算符。由于 b 的值不为 0,所以 a / b 不会被计算。

逻辑运算符的实际应用

逻辑运算符在实际编程中有许多用途,例如验证表单数据、控制程序流程等。

验证用户输入

假设我们需要确保用户输入的邮箱地址格式正确,并且年龄在 18 到 60 之间。

-- -------------------- ---- -------
-------- ------------------- ---- -
    --- ------------ - -----------------------------------------------
    --- ---------- - --- -- -- -- --- -- ---

    --------------- -- ----------- -
        -----------------------
    - ---- -
        -------------------------------
    -
-

----------------------------------- ---- -- ------------
----------------------------------- ---- -- --------------------

在这个示例中,我们使用了正则表达式来验证邮箱地址,并使用 && 来确保年龄在规定的范围内。

逻辑运算符和布尔类型

虽然逻辑运算符通常用于处理布尔类型的值,但它们也可以应用于任何类型的值。在这种情况下,JavaScript 会将这些值转换为布尔类型。

  • 非零数字、非空字符串、对象和数组被视为 true
  • 零、空字符串、nullundefinedNaN 被视为 false

示例代码

在这个例子中,num 是一个非零数字,所以 num && "数字不为零" 表达式的值为 "数字不为零"str 是一个空字符串,因此 str && "字符串为空" 表达式的值为 ""obj 是一个对象,所以 obj && "对象存在" 表达式的值为 "对象存在"

通过这些例子,我们可以看到逻辑运算符如何帮助我们在 JavaScript 中构建更复杂的条件判断逻辑。

纠错
反馈