JavaScript運算子單豎槓"|"

沉靜地閃光發表於2022-05-23

很多人都對雙豎槓"||"非常熟悉,因為這個經常在專案中經常會用到。單豎槓"|",卻很少在專案開發中使用到。"|"是位運算子,"||"是邏輯運算子。

平常,經常使用以下這個幾個方法對數字進行處理。

  1. Math.ceil() //用作向上取整
  2. Math.floor() //用作向下取整
  3. Math.round() //四捨五入取整
  4. parseInt() //解析一個字串並返回一個整數
  5. parseFloat() //可解析一個字串,並返回一個浮點數
  6. toFixed() //四捨五入為指定小數位數的數字
  7. toPrecision() //返回指定長度的數值字串
  8. Number() //把物件的值轉換為數字
  9. isFinite() //檢查某個值是否為是無窮大的數

其實,"|"也可以對數字,進行簡單取整處理。

console.log(0.1|0)//0 
console.log(1.1|0)//1 
console.log(2.345|0)//2 
console.log(3.99999|0)//3
console.log(-4.567|0)//-4 

從列印中,可以看出"|"單豎槓可以對數字取整運算,就是隻保留整數部分。 | 0可以向下取整,,是因為位運算子工作於32位的數字上,任何數字操作都將轉換為32位。0的二進位制就是00...0一共32位(32個0),無論任何數對0進行或運算都是原來的數。一個整數"|"0可以得到它本身,一個小數與0按位或可以得到取整的效果。

console.log(3|4); //7
console.log(4|4);//4
console.log(8|3);//11
console.log(5.3|4.1);//5
console.log(5.3|1688);//1693

這裡的單豎槓"|"就是十進位制的數字轉換為二進位制之後,兩數相加列印出來的結果。

相關文章