JavaScript 比较 和 逻辑运算符
比较和逻辑运算符用于测试 true 或者 false。
比较运算符
比较运算符在逻辑语句中使用,以测定变量或值是否相等。
x=5,下面的表格解释了比较运算符:
运算符 | 描述 | 比较 | 返回值 | 实例 |
---|---|---|---|---|
== | 等于 | x==8 | false | 实例 » |
x==5 | true | 实例 » | ||
=== | 绝对等于(值和类型均相等) | x==="5" | false | 实例 » |
x===5 | true | 实例 » | ||
!= | 不等于 | x!=8 | true | 实例 » |
!== | 不绝对等于(值和类型有一个不相等,或两个都不相等) | x!=="5" | true | 实例 » |
x!==5 | false | 实例 » | ||
> | 大于 | x>8 | false | 实例 » |
< | 小于 | x<8 | true | 实例 » |
>= | 大于或等于 | x>=8 | false | 实例 » |
<= | 小于或等于 | x<=8 | true | 实例 » |
如何使用
可以在条件语句中使用比较运算符对值进行比较,然后根据结果来采取行动:
if (age<18) x="Too young";
您将在本教程的下一节中学习更多有关条件语句的知识。
逻辑运算符
逻辑运算符用于测定变量或值之间的逻辑。
给定 x=6 以及 y=3,下表解释了逻辑运算符:
运算符 | 描述 | 例子 |
---|---|---|
&& | and | (x < 10 && y > 1) 为 true |
|| | or | (x==5 || y==5) 为 false |
! | not | !(x==y) 为 true |
条件运算符
JavaScript 还包含了基于某些条件对变量进行赋值的条件运算符。
语法
variablename=(condition)?value1:value2
幸福的小诗子
xin***dexiaoshizi@qq.com
参考地址
JavaScript多元运算符
实例 »
其实很简单,寻找到多元运算符的头 ? 和尾 : 就好办多了
就成了这样:
1、当 p>1 时返回 p<b?p>b:p=6
2、当 p<=1 是返回 p=3 所以先执行 1
3、实例中当 p=9 的时候,返回 p<b?p>b:p=6 接着执行 1.1,当 p=9<12 时,返回 p>b,即 9>12,条件不成立所以最终结果为 false。
幸福的小诗子
xin***dexiaoshizi@qq.com
参考地址
Answer
ans***912@outlook.com
三目运算
8>5 ? true : false ;
条件 ? 值1 : 值2 ;
翻译成人话就是 8大于5吗? 大于 就是 true 大不于就是 false;
判断?号前面的条件是否成立, 成立 执行第一个值,不成立,执行第二个值。
Answer
ans***912@outlook.com
大瓜饼
154***5273@qq.comn
逻辑运算符用于测定变量或值之间的逻辑。除了常用的返回布尔值,也可以利用运算符的逻辑来获得我们想要的数字或枚举变量:
尝试一下 »
不难理解在这里 0 即为 false, >=1 的变量为 true, 并没有去“运算”数字,而只是根据与或的逻辑依靠布尔值来返回对应的变量。
大瓜饼
154***5273@qq.comn
笑醉踏歌
750***319@qq.com
首先说一下,其他数据类型转换为布尔类型的规则: null、undefined、0、NaN、空字符串转换为false,其他转化为 true。
JavaScript 中有三种逻辑运算符:
1. 取反 !
首先把数据转化为布尔值,然后取反,结果为 true 或 false。
2. 逻辑与 &&
JavaScript 中逻辑与和其他语言不太一样,如果第一个操作数是 true(或者能够转为 true),计算结果就是第二个操作数,如果第一个操作数是 false,结果就是 false(短路计算),对于一些特殊数值不遵循以上规则。(个人理解为:如果运算的第一个操作数为true,则返回第二个操作数,反之则返回第一个操作数)
3. 逻辑或 ||
如果第一个操作数不是 false,结果就是第一个操作数,否则结果是第二个操作数。如果第一个操作数能够转为 true,结果就是第一个操作数(个人理解为:如果运算的第一个操作数为 true,则返回第一个操作数,反之则返回第二个操作数)
笑醉踏歌
750***319@qq.com
衍魔梵
yin***san@foxmail.com
三元表达式扩展
形如以上表达式,找到第一个与第二个问号之间的冒号,将其分开:
此时判断上半部分 a 不为 1 进行下半部分判断:
再将其分开:
此时判断上半部分 a 不为 2 进行下半部分判断。
此时判断下半部分 a 不为 3 输出 “不为1,2,3”。
衍魔梵
yin***san@foxmail.com
木华
871***948@qq.com
认可 4 楼的说法,不过补充一下我的理解。
1、逻辑与 &&
返回的不是单纯的 true 还是 false,而是具体的值;
若是第一个值转换布尔值为 true,就返回第二个值;反之,返回第一个值。
换句话说:哪个值是错的就返回哪个值,如果都是对的,返回最后一个值。
2、逻辑或 ||
同 && 类似,返回的不是单纯的 true 和 false,而是具体的值。
这个是从头开始,遇到能转换成 true 的值,就返回那个值,如果没有 true 的就返回最后一个值。
木华
871***948@qq.com
jishux2
jis***2@outlook.com
JavaScript中有两种相等运算符:
==
和===
。它们的比较规则如下:==
是抽象相等运算符,它会在比较之前,尝试将两个操作数转换成相同的类型,然后再比较它们的值是否相等。例如,1 == "1"
会返回true,因为字符串"1"会被转换成数字1,然后再比较。===
是严格相等运算符,它不会进行类型转换,而是直接比较两个操作数的类型和值是否完全相同。例如,1 === "1"
会返回false,因为数字1和字符串"1"的类型不同,就算它们的值相同也不会返回true。一般来说,建议使用
===
来进行比较,因为它可以避免一些意想不到的结果,例如:null == undefined
会返回true,但是null === undefined
会返回false。0 == false
会返回true,但是0 === false
会返回false。NaN == NaN
会返回false,但是NaN === NaN
也会返回false。抽象相等运算符在尝试将两个操作数转换成相同的类型时,会遵循以下的规则:
例如:
"1" == true
会返回true,因为true会转换成1,然后字符串"1"也会转换成1,所以两个1相等;同理,"0" == false
也会返回true[1,2,3] == "1,2,3"
会返回true,因为数组会调用toString()方法返回字符串"1,2,3"。[1,2,3] == [1,2,3]
会返回false,因为它们是两个不同的数组对象。jishux2
jis***2@outlook.com