成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Javascript邏輯運算符“||”和“&&”

開發 開發工具
本文主要介紹javascript中邏輯運算符“||”和“&&”的作用。

前面一直沒空,遺留了幾個問題,現在處理下。

[[190951]]

在javascript中運算符 & 的作用。

  1. // 9 is 00000000000000000000000000001001  
  2. var expr1 = 9;  
  3.   
  4. // 5 is 00000000000000000000000000000101  
  5. var expr2 = 5;  
  6.   
  7. // 1 is 00000000000000000000000000000001  
  8. var result = expr1 & expr2;  
  9.   
  10. document.write(result);  
  11. // Output: 1 

在這里先是將9 和5轉換為2進制,然后在進行運算,然后根據每一位對應來計算,兩種均為1為1的計算放法,也就是‘與’。

一、先來說說||(邏輯或),從字面上來說,只有前后都是false的時候才返回false,否則返回true。

  1. alert(true||false);    // true 
  2. alert(false||true);    // true 
  3. alert(true||true);        // true 
  4. alert(false||false);    // false 

但是,從深層意義上來說的話,卻有另一番天地,試下面代碼:

  1. alert(0||1); 

顯然,我們知道,前面0意味著false,而后面1意味著true,那么上面的結果應該是true,而事實返回的結果是1。再看下面代碼:

  1. alert(2||1); 

我們知道,前面2是true,后面1也是true,那返回結果又是什么呢?測試結果是2,繼續看:

  1. alert('a'||1); 

同樣,前面'a'是true,后面1也是true;測試結果是'a',下面

  1. alert(''||1); 

由上,我們知道前面''是false,后面1是true,而返回結果是1。再看下面

  1. alert('a'||0); 

前面'a'是true,而后面0是false,返回結果是'a',繼續下面

  1. alert('a'||'b'); 

前面'a'是true,后面'b'是false,返回結果是'a',我們繼續下面

  1. alert(''||0); 

前面''是false,后面0同樣是false,返回結果是0

  1. alert(0||''); 

前面0是false,后面''是false,返回結果是''

這就意味

  • 只要“||”前面為false,不管“||”后面是true還是false,都返回“||”后面的值。
  • 只要“||”前面為true,不管“||”后面是true還是false,都返回“||”前面的值。

二、下面說說&&(邏輯與),從字面上來說,只有前后都是true的時候才返回true,否則返回false。

  1. alert(true&&false);    // false 
  2. alert(true&&true);    // true 
  3. alert(false&&false);    // false 
  4. alert(false&&true);    // false 

然后,根據上面經驗,我們看看“&&”號前后,不單單是布爾類型的情況。

  1. alert(''&&1); 

結是返回'',“&&”前面''是false,后面是1是true。

  1. alert(''&&0); 

結是返回'',“&&”前面''是false,后面是0也是false。

  1. alert('a'&&1); 

結是返回1,“&&”前面''a是true,后面是1也是true。

  1. alert('a'&&0); 

結是返回0,“&&”前面''a是true,后面是0是false。

  1. alert('a'&&''); 

結是返回'',“&&”前面''a是true,后面是''是false。

  1. alert(0&&'a'); 

結是返回0,“&&”前面''0是false,后面是'a'是true。

  1. alert(0&&''); 

結是返回0,“&&”前面''0是false,后面是''也是false。

這意味著

  • 只要“&&”前面是false,無論“&&”后面是true還是false,結果都將返“&&”前面的值;
  • 只要“&&”前面是true,無論“&&”后面是true還是false,結果都將返“&&”后面的值;

讓我們總結一下:

1. 只要“||”前面為false,無論“||”后面是true還是false,結果都返回“||”后面的值。

2. 只要“||”前面為true,無論“||”后面是true還是false,結果都返回“||”前面的值。

3. 只要“&&”前面是false,無論“&&”后面是true還是false,結果都將返“&&”前面的值;

4. 只要“&&”前面是true,無論“&&”后面是true還是false,結果都將返“&&”后面的值;

由上兩個測試可知,邏輯運算符,“||”和“&&”都是遵行短路原則,只要確定符號前面的真假,既可確定返回值。

需要說明的是“&&”的優先級是高于“||”的,下面測試:

  1. alert(1||'a'&&2); 

返回結果是1。

根據反證原理,我們假設“||”的優先級不低于“&&”(這里只所以用“不低于”,是為了同時證明等級相同的情況)。

根據上面我們得出的結論(1),(1||'a')將返回前面的值1,(1&&2)根據結論(4)應該返回后面的值2。這顯然不對,由此可知“&&”的優先級是高于“||”的。

 【本文為51CTO專欄作者“謝軍”的原創稿件,轉載可通過作者微信公眾號(jingfeng18)獲取聯系】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2009-11-18 09:37:31

PHP邏輯運算符

2009-08-12 14:23:09

C#邏輯運算符

2023-03-29 09:22:03

SQLWhere語句

2021-06-07 06:10:22

C++While循環For 循環

2023-04-10 08:58:13

C#關系運算符

2009-11-18 09:19:47

PHP邏輯運算符

2023-04-07 08:02:54

源碼位邏輯運算符

2020-10-15 08:11:56

JavaScript邏輯運算符

2022-10-21 16:28:52

PythonGo布爾值

2021-02-20 23:34:22

JavaScript運算符開發

2010-10-08 09:17:07

JavaScript表JavaScript運

2025-02-24 11:16:20

2009-06-21 13:48:05

ShellLinux運算符

2025-03-11 11:40:00

三元運算符代碼JavaScript

2023-04-11 10:13:04

Java運算符反碼

2021-05-07 06:27:29

JavaScript運算符開發

2009-08-11 15:51:08

C#運算符算術運算符

2024-02-26 15:17:20

2013-08-15 16:48:39

.Net基礎

2009-08-12 15:02:49

C#賦值運算符簡單賦值運算符
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲超碰在线观看 | 亚洲人在线观看视频 | 日日摸日日添日日躁av | 国产精产国品一二三产区视频 | 欧美成人a | 成人在线精品视频 | 亚洲成人黄色 | 男人天堂视频在线观看 | 九九精品久久久 | 人妖videosex高潮另类 | 欧美在线免费 | 日韩在线免费视频 | 青青草社区 | 毛片片| 成人在线一区二区三区 | 国产日韩中文字幕 | 在线亚洲欧美 | 国内精品视频免费观看 | 亚洲视频免费观看 | 888久久久 | 51ⅴ精品国产91久久久久久 | 午夜欧美| 国产精品久久久久久吹潮 | 国产丝袜一区二区三区免费视频 | 精品免费av | 日韩在线播放第一页 | 福利视频一二区 | 国产精品69毛片高清亚洲 | 天天干人人 | 91高清视频在线观看 | 精品久久久久香蕉网 | 中文字幕一区二区三区不卡 | 色婷婷精品久久二区二区蜜臂av | 精品亚洲一区二区 | 国产亚洲日本精品 | 天天操夜夜操 | 欧美不卡视频一区发布 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 老司机久久| 国产精品欧美一区二区 | 男女羞羞视频大全 |