2016-08-31 43 views
2

嘿,我剛纔看到這個快捷鍵被用在一些JavaScript中。Javascript管道在數學中得到Math.floor而不使用Math.floor

(9 + 2)/2|0; // results in 5 

當你做正常的數學運算結果爲5.5。

頂級表達式如何導致Math.floor((9 + 2)/ 2)? 有人可以指出管道正在做什麼,我不明白快捷方式。

+0

這是一個按位「或」 –

+1

看一看這個問題:http://stackoverflow.com/questions/7487977/using-bitwise-or-0-to-floor-a-number – Calum

+1

[清單JS運營商......](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators) – nnnnnn

回答

2

單管|是BitWise OR
按位運算符只允許整數值,所以在小數點後丟棄值。

Bitwise OR運營商|採用2位模式,並對每對相應位執行或操作。
下面的例子將解釋它。

1010        
1100  
----------bitwise or 
1110  
2
  1. 首先的(9+2)/2結果是在JavaScript
  2. 5.5
  3. 那麼它施加的按位Or操作。對於JavaScript,按位操作不直接在64位表示上工作。而是將該值轉換爲32位整數,表示5.55,則5|0的結果爲5
相關問題