JavaScript - 比较运算符

你好,未来的JavaScript法师们!今天,我们将要进入比较运算符的神奇世界。如果你之前从未编写过一行代码,也不要担心——我将是你在这次激动人心旅程中的友好向导。所以,拿起你的魔杖(我的意思是,键盘),让我们开始吧!

JavaScript - Comparison Operators

JavaScript 比较运算符

比较运算符就像是编程世界中的裁判。它们查看两个值并决定它们之间的关系。它们是否相等?是否一个大于另一个?这些运算符帮助我们在代码中做出决策,就像我们在现实生活中做决策一样。

让我们来看看今天我们将要讨论的所有比较运算符:

运算符 名称 示例
== 等于 x == y
!= 不等于 x != y
=== 严格等于 x === y
!== 严格不等于 x !== y
> 大于 x > y
>= 大于或等于 x >= y
< 小于 x < y
<= 小于或等于 x <= y

比较是如何进行的?

在我们深入了解每个运算符之前,让我们先了解JavaScript是如何比较值的。这和我们现实生活中比较事物的方式并没有太大不同!

  1. 如果我们比较的是数字,那么很简单。JavaScript检查哪个数字更大。
  2. 对于字符串,JavaScript会根据它们的Unicode值逐个字符进行比较。
  3. 如果我们比较的是不同的类型(比如数字和字符串),JavaScript通常会尝试在比较之前将一个类型转换为另一个类型。

现在,让我们详细看看每个运算符。

JavaScript 等于 (==) 运算符

等于运算符 (==) 检查两个值是否相等,但它有一定的灵活性。它可以在比较之前转换类型。让我们看一些示例:

console.log(5 == 5);     // true
console.log(5 == "5");   // true
console.log(true == 1);  // true
console.log(null == undefined);  // true

在第一个示例中,我们得到 true 是很明显的。在第二个示例中,JavaScript在比较之前将字符串 "5" 转换为数字。第三个示例可能会让你感到惊讶——JavaScript将 true 视为1,将 false 视为0。最后一个示例显示,nullundefined 在 == 运算符下被认为是相等的。

JavaScript 不等于 (!=) 运算符

不等于运算符 (!=) 是 == 的相反。它检查两个值是否不相等。

console.log(5 != 6);     // true
console.log(5 != "5");   // false
console.log(true != 1);  // false

和 == 一样,它在进行比较之前也会进行类型转换。

JavaScript 严格等于 (===) 运算符

现在,让我们来见见严格等于运算符 (===)。这个运算符就像是 == 运算符的严格的哥哥。它不仅检查值,还确保类型相同。

console.log(5 === 5);     // true
console.log(5 === "5");   // false
console.log(true === 1);  // false
console.log(null === undefined);  // false

看到结果和 == 的不同了吗?严格等于运算符不会进行任何类型转换。

严格不等于 (!==) 运算符

严格不等于运算符 (!==) 是 === 的相反。它检查两个值在值或类型上是否不相等。

console.log(5 !== 6);     // true
console.log(5 !== "5");   // true
console.log(true !== 1);  // true

JavaScript 大于 (>) 运算符

大于运算符 (>) 检查左边的值是否大于右边的值。

console.log(10 > 5);   // true
console.log(5 > 10);   // false
console.log(10 > 10);  // false
console.log("b" > "a");  // true (比较Unicode值)

记住,当比较字符串时,是基于它们的Unicode值,而不是它们的字母顺序!

大于或等于 (>=) 运算符

大于或等于运算符 (>=) 检查左边的值是否大于或等于右边的值。

console.log(10 >= 5);   // true
console.log(10 >= 10);  // true
console.log(5 >= 10);   // false

JavaScript 小于 (<) 运算符

小于运算符 (<) 检查左边的值是否小于右边的值。

console.log(5 < 10);   // true
console.log(10 < 5);   // false
console.log(10 < 10);  // false

小于或等于 (<=) 运算符

小于或等于运算符 (<=) 检查左边的值是否小于或等于右边的值。

console.log(5 <= 10);   // true
console.log(10 <= 10);  // true
console.log(10 <= 5);   // false

比较 null、undefined 和 NaN

比较 nullundefinedNaN 这些特殊值可能会有些棘手。让我们看一些示例:

console.log(null == undefined);  // true
console.log(null === undefined);  // false
console.log(NaN == NaN);  // false
console.log(NaN === NaN);  // false
console.log(null > 0);  // false
console.log(null == 0);  // false
console.log(null >= 0);  // true

nullundefined 的行为可能会让人感到惊讶。NaN 不等于任何东西,甚至不等于它自己!而 null 在比较时会被转换为0,但在相等性检查中则不会。

至此,各位!我们已经穿越了JavaScript比较运算符的土地。记住,熟能生巧,所以不要害怕在你们自己的代码中尝试这些运算符。快乐编码!

Credits: Image by storyset