js運(yùn)算符單豎杠“|”的用法和作用及js數(shù)據(jù)處理
js運(yùn)算符單豎杠“|”的作用
在js操作瘪贱,Number | 0 的時(shí)候:
整數(shù)操作的時(shí)候纱控,相當(dāng)于去除小數(shù)點(diǎn),parseInt菜秦。
正數(shù)的時(shí)候甜害,相當(dāng)于向下取整,Math.floor()喷户。
負(fù)數(shù)的時(shí)候唾那,相當(dāng)于向上取整,Math.ceil()褪尝。
Math.ceil() // 向上取整
Math.floor() // 向下取整
Math.round() // 四舍五入取整
console.log(0.5|0) // 0
console.log(1.4|0) // 1
console.log(3.555|0) // 3
console.log(-5.121222|0) // -5
console.log(-8.357678|0) // -8
處理數(shù)字經(jīng)常用到的方法還有:parseInt()闹获、parseFloat()、toFixed()河哑、toPrecision()
3.1415.toFixed(2) // "3.14"
3.1415.toFixed(3) // "3.142"
Number.prototype.toFixed.call(3.1415, 2) // "3.14"
toPrecision()避诽,保留幾位數(shù),四舍五入璃谨,結(jié)果是字符串沙庐。
3.1415926.toPrecision(5) // "3.1416"
104.1415926.toPrecision(5) // "103.14"
Number.prototype.toPrecision.call(104.1415926, 5) // "103.14"
“Number|0”能達(dá)到取整的目的,若單豎杠不是0佳吞,結(jié)果又會(huì)是多少呢拱雏?
console.log(3|4) // 7
console.log(4|4) // 4
console.log(8|3) // 11
console.log(5.3|4.1) // 5
console.log(9|3455) // 3455
好像無規(guī)律可循。其實(shí)不是的底扳,單豎杠“|”就是轉(zhuǎn)換為2進(jìn)制之后相加得到的結(jié)果铸抑。
console.log(3|4) // 7
// 轉(zhuǎn)換為二進(jìn)制之后 011|110 相加得到111=7
console.log(4|4) // 4
// 轉(zhuǎn)換為二進(jìn)制之后 100|100 相加得到100=4
console.log(8|3) // 11
// 轉(zhuǎn)換為二進(jìn)制之后 1000|011 相加得到1011=11
console.log(5.3|4.1) // 5
// 轉(zhuǎn)換為二進(jìn)制之后 101|100 相加得到101=5