很多人都對雙豎槓"||"非常熟悉,因為這個經常在專案中經常會用到。單豎槓"|",卻很少在專案開發中使用到。"|"是位運算子,"||"是邏輯運算子。
平常,經常使用以下這個幾個方法對數字進行處理。
- Math.ceil() //用作向上取整
- Math.floor() //用作向下取整
- Math.round() //四捨五入取整
- parseInt() //解析一個字串並返回一個整數
- parseFloat() //可解析一個字串,並返回一個浮點數
- toFixed() //四捨五入為指定小數位數的數字
- toPrecision() //返回指定長度的數值字串
- Number() //把物件的值轉換為數字
- 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
這裡的單豎槓"|"就是十進位制的數字轉換為二進位制之後,兩數相加列印出來的結果。