二、比较运算符
1、“>”,”<”,”==”,“>=”,“<=”,”!=”比较结果为 boolean 值
但凡是运算符,都是要有运算的
用到布尔值,true 或 false
字符串的比较,比的是 ASCII 码(七位二进制 0000000)
>, < |
||
例 var a = "a">"b";document.write(a); |
//答案是 false |
|
例 var a = 1 > 2;document.write(a); |
//答案是 false |
|
例 var a = 1 < 2;document.write(a); |
//答案是 true |
|
例 var a = "1">"8";document.write(a); |
//答案是 false |
|
例 var a = "10">"8";document.write(a); |
//答案 false,不是十和八比,是字符串一 |
零和八比,先用开头的一和八比,比不过就不看第二位了;一样的就拿零和八比
例 var a = 123;document.write(a); //答案 false
运算结果为真实的值
= =,等不等于
例 var a = 1 == 2;//答案是说 1 等不等于 2,因为 1 肯定不等于 2,所以值为 false
例 var a = NaN == NaN; //答案是 false,NaN 不等于任何东西,包括他自己
= =,等不等于
例 var a = 1 == 2;//答案是说 1 等不等于 2,因为 1 肯定不等于 2,所以值为 false
例 var a = NaN == NaN; //答案是 false,NaN 不等于任何东西,包括他自己
4
例 var a = undefined == underfined; //答案是 true
例 var a = infinity == infinity; //答案是 true
例 var a = NaN == NaN; //答案是 false。非数 NaN 是不等于自己的
NaN 得不出数,又是数字类型,就是 NaN
>=,<=
!=是否不等于,非等
比较结果为 boolean 值:true 和 false
三、逻辑运算符:“&&”,“||”,“!“运算结果为真实的值
“&&”与运算符
两个表达式:先看第一个表达式转换成布尔值的结果是否为真,如果结果为真,那么它会看第二个表达式转换为布尔值的结果,然后如果只有两个表达式的话,只看看第二个表达式,就可以返回该表达式的值了,如果第一位布尔值为 false,不看后
面的,返回第一个表达式的值就可以了 |
|||||
运算符就是要求结果 |
|||||
例 var a = 1 |
&& 2; |
//答案 2,如果第一位 1 为真,结果就为第二位的值 2 |
|||
例 var a = 1 |
&& 2 |
+ 2; |
//答案 4,如果 1 为真,结果就为 4 |
||
例 var a = 0 |
&& 2 |
+ 2; |
//答案 0 |
||
例 var a = 1 |
&& 1 |
&& 8; |
//答案 8,先看第一个是否为真,为真再看第二个, |
||
中途如果遇到 false,那就返回 false 的值 |
|||||
例 var a =1 + 1 && 1 – 1;document.write(a); |
//答案 0 |
如果是三个或多个表达式,会先看第一个表达式是否为真,如果为真,就看第二个
表达式,如果第二个也为真,就看第三个表达式(如果为真就往后看,一旦遇到假
就返回到假的值),如果第三个是最后一个表达式,那就直接返回第三个的结果
如果第一个是假,就返回第一个值,当是真的时候就往后走,一旦遇到假,就返回
例:2>1 && document.write(‘成哥很帅’) //意思是如果 2 大于 1,那么就打
印成哥很帅,如果前面真才能执行后面的(相当于短路语句使用)
&&与运算符是有中断作用的,当短路语句使用(如果。。那么。。)
例 var data = ...; //执行一个语句,会用到 data data&&执行一个语句全用到 data
例 data && function(data);
&与运算 |
我们一般不用 |
||||
例 var num = 1 & 2;document.write(num); |
// |
答案 0 |
|||
例 var num = 1 & 1;document.write(num); |
//答案 1 |
||||
例 var num = 1 & 3;document.write(num); |
//答案 1 |
||||
上下一与,不同为 0,相同为 1 |
|||||
1 在二进制中,是 1(为了对齐补的 0) |
0 |
1 |
3 在二进制中,是 11 |
1 |
1 |
|||
运算结果 |
0 |
1 |
|||
“||”或运算符 |
|||||
例 var num = 1 |
|| 3; |
//答案 1 |
|||
例 var num = 0 |
|| 3; |
//答案 3 |
|||
例 var num = 0 |
|| false; |
//答案是 false |
看第一个表达式是否为真,如果为真,则返回第一个值,碰到真就返回
如果第一个表达式是假,就看第二个表达式,如果第二个是最后一个,就返回第二
个的值 |
||||||||
关注真假的说法:全假才为假,有一个真就为真 |
||||||||
例 var num = 0 || false || 1;document.write(num); |
//答案 1 |
|||||||
例 div .onclick = function(e){ |
||||||||
非 IE 浏览器直接取 e 值 |
||||||||
var event = e; |
||||||||
IE 浏览器存在 window.event; |
||||||||
} |
||||||||
写成下面这样就解决了兼容性。在所有的浏览器中都好使 |
||||||||
div .onclick = function(e){var event = e || window.event;} |
||||||||
“!“非运算符,否的意思。 |
||||||||
先转成布尔值,再取反 |
||||||||
例 var a = ! 123;document.write(a); |
//答案 false。123 的布尔值是 true,取反是 false |
|||||||
例 var a = ! “”;document.write(a); |
//答案 true。空串””布尔值是 false,取反是 true |
|||||||
例 var a = ! !“”;document.write(a); |
//答案 false,取反后,再反过来,结果不变 |
|||||||
例 var a = true;a =!a;document.write(a) |
//答案 false,自身取反,再赋值给自身 |
|||||||
!=非等于是表达他们到底等不等的 |