雖然 ECMAScript 對於數字只有 Number,且本質是 Float,但人類的數字系統還是有 Integer 與 Float 之分,且 Float 轉 Integer 亦是實務上常見的需求。
Version
macOS Catalina 10.15.6
VS Code 1.47.2
Quokka 1.0.311
ECMAScript 5
標準做法
Math.round(23.9) // ?
Math.floor(23.9) // ?
Math.ceil(23.9) // ?
- **Math.floor()**:無條件捨去,也就是將小數部分捨去
- **Math.ceil()**:無條件進入
- **Math.round()**:四捨五入
Bitwise Operator
Math.floor(23.9) // ?
23.9 | 0 // ?
~~23.9 // ?
若想要 無條件捨去
,除了 Math.floor()
外,也可以使用 | 0
或 ~~
快速將小數部分捨去。
Conclusion
| 0
與~~
動用 binary 特性,雖然有點 tricky,但只要知道後還是蠻好用的
Reference
Bret Cameron, 12 JavaScript Tricks You Won’t Find in Most Tutorials