JavaScript - 比较运算符
你好,未来的JavaScript法师们!今天,我们将要进入比较运算符的神奇世界。如果你之前从未编写过一行代码,也不要担心——我将是你在这次激动人心旅程中的友好向导。所以,拿起你的魔杖(我的意思是,键盘),让我们开始吧!
JavaScript 比较运算符
比较运算符就像是编程世界中的裁判。它们查看两个值并决定它们之间的关系。它们是否相等?是否一个大于另一个?这些运算符帮助我们在代码中做出决策,就像我们在现实生活中做决策一样。
让我们来看看今天我们将要讨论的所有比较运算符:
运算符 | 名称 | 示例 |
---|---|---|
== | 等于 | x == y |
!= | 不等于 | x != y |
=== | 严格等于 | x === y |
!== | 严格不等于 | x !== y |
> | 大于 | x > y |
>= | 大于或等于 | x >= y |
< | 小于 | x < y |
<= | 小于或等于 | x <= y |
比较是如何进行的?
在我们深入了解每个运算符之前,让我们先了解JavaScript是如何比较值的。这和我们现实生活中比较事物的方式并没有太大不同!
- 如果我们比较的是数字,那么很简单。JavaScript检查哪个数字更大。
- 对于字符串,JavaScript会根据它们的Unicode值逐个字符进行比较。
- 如果我们比较的是不同的类型(比如数字和字符串),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。最后一个示例显示,null
和 undefined
在 == 运算符下被认为是相等的。
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
比较 null
、undefined
和 NaN
这些特殊值可能会有些棘手。让我们看一些示例:
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
null
和 undefined
的行为可能会让人感到惊讶。NaN
不等于任何东西,甚至不等于它自己!而 null
在比较时会被转换为0,但在相等性检查中则不会。
至此,各位!我们已经穿越了JavaScript比较运算符的土地。记住,熟能生巧,所以不要害怕在你们自己的代码中尝试这些运算符。快乐编码!
Credits: Image by storyset