在JavaScript中“&&”和“||”是邏輯運算符;“&”和“|”是位運算符。
四個運算符主要區別是運算方法不一樣:
1、JavaScript中的位運算符:“&”
運算方法:兩個數值的個位分別相與,同時為1才得1,只要一個為0就為0。
舉個例子:
31&2 結果為2
理由:31的二進制為11111,2的二進制為10 11111&00010的結果為00010,即2
控制台運行結果:
2、JavaScript中的位運算符:“|”
運算方法:
兩個位只要有一個為1,那么結果都為1。否則就為0
舉個例子:
31|2 結果為31 31的二進制為11111,2的二進制為10 11111|00010的結果為11111,即31
控制台運行結果:
3、JavaScript中的邏輯運算符“&&”
運算方法:
只要“&&”前面是false,無論“&&”后面是true還是false,結果都將返“&&”前面的值;
只要“&&”前面是true,無論“&&”后面是true還是false,結果都將返“&&”后面的值;
例子:1&&3 為3,1&&0為0,控制台運行結果如下:
4、JavaScript中的邏輯運算符“||”
運算方法:
只要“||”前面為false,不管“||”后面是true還是false,都返回“||”后面的值。
只要“||”前面為true,不管“||”后面是true還是false,都返回“||”前面的值。
例子:3||1為3,3||0為3,0||3為3 控制台運行結果如下:
擴展資料:
在JavaScript邏輯運算中
0、”“、null、false、undefined、NaN都會判為false,其他都為true。
舉個例子:null && 1 結果為null
控制台運行結果如下:
JavaScript中的邏輯運算除了&& 和 || 外,還有邏輯非(!)
邏輯非(!)的判斷邏輯如下:
如果一個操作數是一個對象,返回false;
如果一個操作數是一個空字符串,返回false;
如果一個操作數是一個非空字符串,返回false;
如果一個操作數是一個數值0,返回true;
如果一個操作數是任意的非零字符,返回false;
如果一個操作數是null,返回true;
如果一個操作數是NaN,返回true;
如果一個操作數是undefined,返回true;
轉載: https://zhidao.baidu.com/question/2118237346586349547.html