比较运算符:> , < ,>=,<=,!=,
返回的结果是boolean值
比较数值:
其他同理
比较字符串:
比较字符串,就是比较ASCII码
如果是多个字符的字符串比较,先比较第一位,如果第一位相同,再比较第二位
还有一些系统的关键字,比如:
然后再看NaN
NaN是个特例,他不等于任何东西,甚至是自己
--------------------------------------------------------------------------------------------------------------------------------
逻辑运算符: && || !
逻辑运算符也是返回一个结果的,了解逻辑运算符之前需要知道,系统把什么情况判断为false
undefined ,null,NaN,“”,0,false ==》false
1,先看第一个“与”运算符,在平常,我们最多是用在判断,那么现在在来看下面的情况
你觉得a应该是多少?true?不对,是2
现在只说&&里只有两个表达式的情况,
如果&&两边各一个表达式,他会首先看第一个表达式转换成boolean值的结果,如果为true,直接返回第二个表达式;如果为false,那么他直接返回第一个表达式的值(记住,是值哦)
接下来再看两个:
这个是因为,第一个表达式转换为Boolean是真,所以返回第二个表达式的值(2+2)
这个是因为第一个表达式转换成boolean值是false,所以直接返回第一个表达式的值(0)
如果是3个或者多个&怎么判断的呢?
他会逐个判断,遇到boolean值为假,就停止并且将假的值返回
所以2个表达式的&&语句可以用做判断
2 > 1 && document.write("AAAAAA");
被叫做短路语句
var data = ...;
data && 执行一个语句,会用到data
2, ||运算符
和&&运算符正好相反,他向后查询一个boolean值为真的值,如果查到,就将真的值返回,如果没有,就返回最后一个值
|| 一般用作兼容性
3,!运算符(非)
先把这个东西转换成boolean值,然后在取反
!!----》把表达式变成boolean值
这里,先要知道 || 比 = 优先级高
如果
这样就会报错
如果有小括号,会先运行,先把foo赋值为bar,然后再看第一个window.foo,发现为真,就返回bar