在本章中,我们将详细探讨 JavaScript 中的二元运算符。二元运算符是需要两个操作数来进行计算的运算符。这些运算符用于执行各种数学、逻辑和比较运算。了解它们的工作原理对于编写有效的代码至关重要。
数学运算符
数学运算符用于执行基本的算术运算,如加法、减法、乘法、除法等。下面是一些常用的数学运算符:
加法运算符 (+)
加法运算符用于将两个数值相加。它也可以用于字符串连接。
let sum = 5 + 3; // 结果为 8 let fullName = "张" + "三"; // 结果为 "张三"
减法运算符 (-)
减法运算符用于从一个数值中减去另一个数值。
let difference = 10 - 4; // 结果为 6
乘法运算符 (*)
乘法运算符用于计算两个数值的乘积。
let product = 7 * 2; // 结果为 14
除法运算符 (/)
除法运算符用于计算两个数值的商。
let quotient = 15 / 3; // 结果为 5
取模运算符 (%)
取模运算符用于计算两个数值相除后的余数。
let remainder = 10 % 3; // 结果为 1
赋值运算符
赋值运算符用于给变量分配一个值。最常用的赋值运算符是等号 (=)。
let x = 10;
除了基本的赋值运算符外,还有其他一些复合赋值运算符,可以简化代码。
复合赋值运算符
加法赋值运算符 (+=)
加法赋值运算符将右侧的值加到左侧的变量上,并将结果赋给该变量。
let y = 5; y += 3; // 等价于 y = y + 3,结果为 8
减法赋值运算符 (-=)
减法赋值运算符从左侧的变量中减去右侧的值,并将结果赋给该变量。
let z = 10; z -= 4; // 等价于 z = z - 4,结果为 6
乘法赋值运算符 (*=)
乘法赋值运算符将左侧的变量与右侧的值相乘,并将结果赋给该变量。
let a = 3; a *= 2; // 等价于 a = a * 2,结果为 6
除法赋值运算符 (/=)
除法赋值运算符将左侧的变量除以右侧的值,并将结果赋给该变量。
let b = 12; b /= 3; // 等价于 b = b / 3,结果为 4
取模赋值运算符 (%=)
取模赋值运算符计算左侧的变量与右侧的值的余数,并将结果赋给该变量。
let c = 9; c %= 4; // 等价于 c = c % 4,结果为 1
比较运算符
比较运算符用于比较两个值,并返回一个布尔值(true 或 false)。
相等运算符 (==)
相等运算符检查两个值是否相等,如果相等则返回 true。
let isEqual = (5 == 5); // 结果为 true
严格相等运算符 (===)
严格相等运算符不仅检查两个值是否相等,还检查它们的数据类型是否相同。
let isStrictEqual = (5 === "5"); // 结果为 false
不相等运算符 (!=)
不相等运算符检查两个值是否不相等,如果不相等则返回 true。
let isNotEqual = (5 != 3); // 结果为 true
严格不相等运算符 (!==)
严格不相等运算符不仅检查两个值是否不相等,还检查它们的数据类型是否不同。
let isStrictNotEqual = (5 !== "5"); // 结果为 true
小于运算符 (<)
小于运算符检查左侧的值是否小于右侧的值。
let isLessThan = (3 < 5); // 结果为 true
大于运算符 (>)
大于运算符检查左侧的值是否大于右侧的值。
let isGreaterThan = (7 > 2); // 结果为 true
小于等于运算符 (<=)
小于等于运算符检查左侧的值是否小于或等于右侧的值。
let isLessThanOrEqualTo = (4 <= 4); // 结果为 true
大于等于运算符 (>=)
大于等于运算符检查左侧的值是否大于或等于右侧的值。
let isGreaterThanOrEqualTo = (9 >= 9); // 结果为 true
逻辑运算符
逻辑运算符用于组合或反转布尔表达式的值。
逻辑与运算符 (&&)
逻辑与运算符检查两个条件是否都为真。只有当两个条件都为 true 时,整个表达式才为 true。
let resultAnd = (5 > 3 && 2 < 4); // 结果为 true
逻辑或运算符 (||)
逻辑或运算符检查两个条件中的任意一个是否为真。只要有一个条件为 true,整个表达式就为 true。
let resultOr = (5 > 3 || 2 > 4); // 结果为 true
逻辑非运算符 (!)
逻辑非运算符用于反转一个布尔表达式的值。如果表达式为 true,则结果为 false;如果表达式为 false,则结果为 true。
let resultNot = !(5 > 3); // 结果为 false
条件运算符
条件运算符是一个三元运算符,用于基于条件选择两个值之一。
let age = 20; let drink = (age >= 18) ? "啤酒" : "果汁"; console.log(drink); // 输出 "啤酒"
在这个例子中,如果 age
大于或等于 18,则 drink
的值为 "啤酒";否则,drink
的值为 "果汁"。
运算符优先级
不同的运算符有不同的优先级。优先级决定了运算符在表达式中被执行的顺序。如果一个表达式中有多个运算符,那么优先级较高的运算符会先被计算。
let expression = 3 + 4 * 2; console.log(expression); // 输出 11
在这个例子中,由于乘法运算符的优先级高于加法运算符,所以先计算 4 * 2
得到 8,然后再加上 3 得到最终结果 11。
为了明确指定运算顺序,可以使用括号来分组子表达式。
let expressionWithParentheses = (3 + 4) * 2; console.log(expressionWithParentheses); // 输出 14
通过使用括号,我们改变了运算的顺序,使得先进行加法运算,再进行乘法运算。
总结
在这一章中,我们详细介绍了 JavaScript 中的各种二元运算符,包括数学运算符、赋值运算符、比较运算符、逻辑运算符以及条件运算符。理解这些运算符及其工作原理对于编写高效且正确的代码非常重要。希望本章的内容能帮助你在实际开发中更好地运用这些运算符。