Skip to content

比较运算符

它们的作用就是比较两个东西的大小或是否相等,然后给出一个“是”(true)或“否”(false)的答案。
我认为学过小学数学的人都能理解

> (大于)

规则:如果左边的值在数值上大于右边的值,返回 true;否则返回 false
10 > 5true (10 比 5 大)
3 > 7false (3 不大于 7)
5 > 5false (5 不大于 5,它俩相等)

< (小于)

规则:如果左边的值在数值上小于右边的值,返回 true;否则返回 false
2 < 8true (2 比 8 小)
9 < 4false (9 不小于 4)
6 < 6false (6 不小于 6)

>= (大于或等于)

规则:如果左边的值大于右边的值,或者两边相等,返回 true;只有左边小于右边时才返回 false
7 >= 3true (7 > 3)
4 >= 4true (4 == 4)
1 >= 5false (1 既不大于也不等于 5)

<= (小于或等于)

规则:如果左边的值小于右边的值,或者两边相等,返回 true;只有左边大于右边时才返回 false
3 <= 9true (3 < 9)
5 <= 5true (5 == 5)
8 <= 2false (8 既不小于也不等于 2)

== (相等 / 抽象相等)

规则:判断两个值是否“相等”。关键特性:它会尝试将不同类型的操作数转换成相同类型再比较(这叫“类型强制转换”)。
警告:这个转换规则比较复杂,容易出错。
5 == 5true (都是数字,相等)
5 == "5"true (数字 5 和字符串 "5"== 会把字符串转成数字再比,所以相等!)
0 == falsetrue (0false 在转换后被认为是相等的)
null == undefinedtrue (这是特殊规则)
"hello" == "world"false (字符串内容不同)

!= (不相等 / 抽象不相等)

规则:== 的反面。如果 == 返回 false!= 就返回 true,反之亦然。同样会进行类型转换。
3 != 5true (3 不等于 5)
5 != "5"false (因为 5 == "5"true,所以 !=false)
0 != falsefalse (因为 0 == falsetrue)

=== (严格相等)

规则:判断两个值是否“严格相等”。必须同时满足两个条件:值相等类型相同
不会进行任何类型转换。这是最安全、最推荐使用的相等比较。
5 === 5true (都是数字5)
5 === "5"false (类型不同!一个是 number,一个是 string)
true === truetrue
null === undefinedfalse (类型不同)
[] === []false (两个不同的数组对象,内存地址不同)

!== (严格不相等)

规则:=== 的反面。如果 === 返回 false!== 就返回 true,反之亦然。
3 !== 5true (3 不严格等于 5)
5 !== "5"true (因为类型不同)
null !== undefinedtrue