比较和逻辑运算符用来测试true或false 。
比较运算符
比较运算符在逻辑语句用来确定变量或值之间的平等或差异。
鉴于x = 5 ,下表说明了比较运算符:
操作者 | 描述 | 对比 | 返回 | 尝试一下 |
---|---|---|---|---|
== | 等于 | x == 8 | false | 尝试一下 ” |
x == 5 | true | 尝试一下 ” | ||
x == "5" | true | 尝试一下 ” | ||
=== | 同等价值和平等的类型 | x === 5 | true | 尝试一下 ” |
x === "5" | false | 尝试一下 ” | ||
!= | 不平等 | x != 8 | true | 尝试一下 ” |
!== | 不等于价值或不等于类型 | x !== 5 | false | 尝试一下 ” |
x !== "5" | true | 尝试一下 ” | ||
x !== 8 | true | 尝试一下 ” | ||
> | 比...更棒 | x > 8 | false | 尝试一下 ” |
< | 少于 | x < 8 | true | 尝试一下 ” |
>= | 大于或等于 | x >= 8 | false | 尝试一下 ” |
<= | 小于或等于 | x <= 8 | true | 尝试一下 ” |
它可以如何使用
比较运营商可以在条件语句中使用值进行比较,并根据结果采取行动:
if (age < 18) text = "Too young";
您将了解更多有关本教程的下一章使用条件语句。
逻辑运算符
逻辑运算符被用来确定变量或值之间的逻辑。
鉴于x = 6和y = 3 ,下表说明了逻辑运算:
操作者 | 描述 | 例 | 尝试一下 |
---|---|---|---|
&& | and | (x < 10 && y > 1) is true | 尝试一下 ” |
|| | or | (x == 5 || y == 5) is false | 尝试一下 ” |
! | not | !(x == y) is true | 尝试一下 ” |
条件(三元)运算符
的JavaScript还包含一个值分配给基于一些条件的变量的条件运算。
句法
variablename = ( condition ) ? value1 : value2
例
var
voteable = (age < 18) ? "Too young":"Old enough";
试一试» 如果变量年龄为18岁以下的值,变量voteable的值将是“太年轻”,否则voteable的值将是“老足够”。
比较不同类型
比较不同类型的数据可能会出现意想不到的结果。
在比较了一些字符串,JavaScript的做比较时将字符串转换为数字。 空字符串转换为0的非数字字符串转换成NaN这始终是假的。
案件 | 值 | 尝试 |
---|---|---|
2 < 12 | true | 尝试一下 ” |
2 < "12" | true | 尝试一下 ” |
2 < "John" | false | 尝试一下 ” |
2 > "John" | false | 尝试一下 ” |
2 == "John" | false | 尝试一下 ” |
"2" < "12" | false | 尝试一下 ” |
"2" > "12" | true | 尝试一下 ” |
"2" == "12" | false | 尝试一下 ” |
当比较两个串,“2”,将不是“12”时,因为(按字母顺序)1小于2。
为了确保正确的结果,变量应该被转换为适当的类型比较之前:
age = Number(age);
if (isNaN(age)) {
voteable = "Error in input";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}
试一试» JavaScript的位运算符
运营商位在32位的数字工作。
在操作任何数字操作数被转换成一个32位的数字。
结果被转换回一个JavaScript号码。
操作者 | 描述 | 例 | 与...一样 | 结果 | 十进制 |
---|---|---|---|---|---|
& | AND | x = 5 & 1 | 0101 & 0001 | 0001 | 1 |
| | OR | x = 5 | 1 | 0101 | 0001 | 0101 | 5 |
~ | NOT | x = ~ 5 | ~0101 | 1010 | 10 |
^ | XOR | x = 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 |
<< | Left shift | x = 5 << 1 | 0101 << 1 | 1010 | 10 |
>> | Right shift | x = 5 >> 1 | 0101 >> 1 | 0010 | 2 |
上述使用4位无符号的示例表。 但JavaScript使用32位有符号数。
正因为如此,在JavaScript中,〜5将不会返回10.它将返回-6:
〜00000000000000000000000000000101将返回11111111111111111111111111111010