【渡一教育】JavaScript学习笔记整理(学习打卡第5天)

二、比较运算符

 

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,自身取反,再赋值给自身

!=非等于是表达他们到底等不等的

 

 

 

 

 

 

posted @ 2020-04-17 17:05  凯尔文  阅读(222)  评论(0)    收藏  举报