我在瀏覽器控制檯上檢查了一些東西,意外地使用了|
而不是||
(OR)。什麼是|運算符在JavaScript中?
該運算符的功能是什麼?我做了一些谷歌搜索,但沒有涉及到相關。
2 | 4
6
1 | 2
3
4 | 5
5
8|10
10
8 | 10
10
10 | 8
10
2 || 4
2
我在瀏覽器控制檯上檢查了一些東西,意外地使用了|
而不是||
(OR)。什麼是|運算符在JavaScript中?
該運算符的功能是什麼?我做了一些谷歌搜索,但沒有涉及到相關。
2 | 4
6
1 | 2
3
4 | 5
5
8|10
10
8 | 10
10
10 | 8
10
2 || 4
2
| (按位或)
對每對位執行OR操作。 A或B的產率1,如果A或B是1事實 表OR操作是:
a b a OR b
0 0 0
0 1 1
1 0 1
1 1 1
9 (base 10) = 00000000000000000000000000001001 (base 2)
14 (base 10) = 00000000000000000000000000001110 (base 2)
--------------------------------
14 | 9 (base 10) = 00000000000000000000000000001111 (base 2) = 15 (base 10)
按位或運算任何數x 0的產率X。
按位對任意數字x進行或運算-1會得到-1。
來源MDN
這是按位或。 它在兩個操作數中逐個檢查每個位,如果兩個位中的一個置位,則輸出位將置位(1)。
例:var test = 5 | 3
5 - > 101(前導零這裏忽略)
3 - > 011
然後測試將是7(111)
二進制或
0 OR 0 - > 0
0 OR 1 - > 1
1或0 - > 1
1或1 - > 1
(易記 - 0或0 0給出任何其他情況下,可以提供1)
如果你有例如4 | 1 - > 4的二進制形式爲100,1爲001.然後100 | 001 - > 101(或十進制中的5)
此外,邏輯或(||)只是簡單地處理左右值和1和0,其工作原理與上述相同。
The |是一個按位或,而不是布爾OR ||
這意味着它會做什麼或像每2位爲二進制10和4是二進制的100,結果110
如果計算所有結果上面的二進制數,你會看到。
這是位掩碼或評估標誌有用。如果編程更接近硬件,則在設置寄存器位時通常會發現此問題,或者在通信時解析協議數據。
if (myVar | 0x2 > 0) {
// Bit two is set!
}
當然還有其他用途。
還有一個位與&工作方式相同,但ANDS位。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators – elclanrs
相關:http://stackoverflow.com/questions/5690512/whats-the-difference-between - 和式的JavaScript,http://stackoverflow.com/questions/7051811/what-does-the-operator-do?lq=1,http://stackoverflow.com/questions/6194950/what-does-the -single-pipe-do-in-javascript?lq = 1 – user2864740