JavaScript 比较 和 逻辑运算符


JavaScript 比较和逻辑运算符

比较运算符

JavaScript 比较运算符用于比较两个值。比较运算符返回布尔值 true 或 false。

以下是常见的比较运算符:

  • 等于 (==):比较两个值是否相等。如果相等,返回 true,否则返回 false。
console.log(10 == "10"); //true
console.log(10 == 20); //false
  • 不等于 (!=):比较两个值是否不相等。如果不相等,返回 true,否则返回 false。
console.log(10 != "10"); //false
console.log(10 != 20); //true
  • 严格等于 (===):比较两个值是否类型和值都相等。如果相等,返回 true,否则返回 false。
console.log(10 === "10"); //false
console.log(10 === 10); //true
  • 严格不等于 (!==):比较两个值是否类型或值不相等。如果不相等,返回 true,否则返回 false。
console.log(10 !== "10"); //true
console.log(10 !== 10); //false
  • 大于 (>):比较左侧值是否大于右侧值。如果大于,返回 true,否则返回 false。
console.log(10 > 5); //true
console.log(10 > 20); //false
  • 小于 (<):比较左侧值是否小于右侧值。如果小于,返回 true,否则返回 false。
console.log(10 < 5); //false
console.log(10 < 20); //true
  • 大于等于 (>=):比较左侧值是否大于等于右侧值。如果大于等于,返回 true,否则返回 false。
console.log(10 >= 5); //true
console.log(10 >= 20); //false
  • 小于等于 (<=):比较左侧值是否小于等于右侧值。如果小于等于,返回 true,否则返回 false。
console.log(10 <= 5); //false
console.log(10 <= 20); //true

逻辑运算符

JavaScript 逻辑运算符用于组合两个或多个条件。逻辑运算符返回布尔值 true 或 false。以下是常见的逻辑运算符:

  • 逻辑与 (&&):如果两个条件都是 true,则返回 true。否则返回 false。
console.log(10 > 5 && 20 > 10); //true
console.log(10 > 20 && 20 > 10); //false
console.log(10 < 5 && 20 > 10); //false
  • 逻辑或 (||):如果两个条件之一是 true,则返回 true。否则返回 false。
console.log(10 > 5 || 20 > 10); //true
console.log(10 > 20 || 20 > 10); //true
console.log(10 < 5 || 20 > 10); //true
console.log(10 < 5 || 20 < 10); //false
  • 逻辑非 (!):如果条件为 true,则返回 false。如果条件为 false,则返回 true。
console.log(!(10 > 5)); //false
console.log(!(10 < 5)); //true

短路求值

JavaScript 逻辑运算符支持短路求值。如果表达式可以通过评估左侧来确定结果,则不会对右侧进行求值。

例如,在逻辑与运算符中,如果左侧条件为 false,则不需要评估右侧条件,因为整个表达式不可能是 true。同样,在逻辑或运算符中,如果左侧条件为 true,则不需要评估右侧条件,因为整个表达式不可能是 false。

以下是使用短路求值的示例:

let age = 20;
let name = "John";

if (age > 18 && name === "John") {
  console.log("可以进入酒吧");
}

在这个示例中,只有当 age 大于 18 且 name 等于 “John” 时才会输出结果。如果 age 小于 18,那么 JavaScript 就不会对 name 进行求值,因为无论其值是什么,表达式都将返回 false。

总结

JavaScript 比较和逻辑运算符非常重要,我们可以通过这些运算符进行基本的条件判断和逻辑组合。此外,了解短路求值可以帮助我们编写更快速和高效的代码。