逻辑运算符:( && , || , ! )
与操作( && ):
- 操作数同时为true返回true,操作有一个false就返回false
- 如果第一个操作数是对象,返回第二个操作数
例:var b = "abc" && "bcd"
输出b="bcd"
- 如果第二个操作数是对象,并且第一个操作数是true返回第二个操作数
- 如果有一个操作数是null(NaN/undefined),返回null(NaN/undefined)
- 总结:如果两个操作数都不是布尔类型,两个值转换成布尔类型都是true,则返回第二个操作数,如果有一个操作数转换成布尔类型是false,返回这个操作数。
或操作( || ):
- 有一个操作数为true返回true,操作数同时为false返回false
- 如果第一个操作数是对象,返回第一个操作数
- 如果第二个操作数是对象,并且第一个操作数是false返回第二个操作数
- 如果两个操作数都是对象,返回第一个操作数
- 如果两个操作数都是null(NaN/undefined),返回null(NaN/undefined)
取反操作( ! ):
- !(4>6)为true
- 如果操作数是对象,返回false
- 如果操作数是空字符串,返回true
- 如果操作数是非空字符串,返回false
- 如果操作数是0,返回true
- 如果操作数是任意非0值,返回false
- 如果操作数是null,undefined,NaN,返回true
转换后为false的值:false, "", 0, NaN, null, undefined.
比较运算符
var x = 5
运算符 | 描述 | 例子 |
== | 等于 | x==8为false |
=== | 全等(值和类型) | x===5为true,x==='5'为false |
!= | 不等于 | x!=8为true |
> | 大于 | x>8为false |
< | 小于 | x<8为true |
>= | 大于或等于 | x>=8为false |
<= | 小于或等于 | x<=8为true |