最近又開始用 Codewars 來練習刷題,也嘗試開一個 Repository:codewars-challenges 記錄作答結果,蠻喜歡這種能夠慢慢升級的感覺,答題結束還能參考其他人的解法,才恍然大悟原來還有更簡潔的思路。
發現自己對於一些 JavaScript 函式使用還是不太熟,把之前寫過的筆記重新複習過,本篇主要整理 JS 常見的內建函式,列表如下:
- Math.floor(x):無條件捨去,回傳「小於等於」所給數字的最大整數
- Bitwise NOT (~):位元反向運算子(波浪號)
- Math.ceil(x):無條件進位,回傳「大於等於」所給數字的最小整數
- Math.round(x):四捨五入
- toFixed(x):四捨六入五留雙
- Math.sqrt(x):返回一個數的平方根
- Math.abs(x):返回一個數的絕對值
Math.floor(x):無條件捨去,回傳「小於等於」所給數字的最大整數
Math.floor(.95); // 0
Math.floor(4); // 4
Math.floor(7.004); // 7
Math.floor(-0.95); // -1
Math.floor(-4); // -4
Math.floor(-7.004); // -8
Bitwise NOT (~
):位元反向運算子(波浪號)
- Bitwise NOT(
~
)作用是將數字x
轉換為-(x + 1)
- Double Bitwise NOT(
~~
):雙位元元反向運算子(兩個波浪號),對正數的作用類似Math.floor(x)
的無條件捨去,但對負數則結果不同
~10 // -11
~-10 // 9
~10.5 // -11
~-10.5 // 9
~~10 // 10
~~-10 // -10
~~10.5 // 10
~~-10.5 // -10
Math.ceil(x):無條件進位,回傳「大於等於」所給數字的最小整數
Math.ceil(.95); // 1
Math.ceil(4); // 4
Math.ceil(7.004); // 8
Math.ceil(-0.95); // -0
Math.ceil(-7.004); // -7
Math.round(x):四捨五入
Math.round(20.49); // 20
Math.round(20.5); // 21
Math.round(-20.5); // -20
Math.round(-20.51); // -21
toFixed(x):四捨六入五留雙
- 以字串返回,精確至「小數點後」的數字,小數部分依指定長度補充零
1.23.toFixed(2); // '1.23'
1.234.toFixed(2); // '1.23'
1.235.toFixed(2); // '1.24'
1.236.toFixed(2); // '1.24'
1.244.toFixed(2); // '1.24'
1.245.toFixed(2); // '1.25'
1.246.toFixed(2); // '1.25'
(36).toFixed(4) // '36.0000'
Math.sqrt(x):返回一個數的平方根
Math.sqrt(2); // 1.4142135623730951
Math.sqrt(4); // 2
Math.sqrt(-2); // NaN
Math.sqrt(0); // 0
Math.abs(x):返回一個數的絕對值
function difference(a, b) {
return Math.abs(a - b);
}
difference(3, 5); // 2
difference(5, 3); // 2
difference(-5, -3); // 2
Reference
- [JS] JavaScript 運算子(Operator)
- JavaScript 四捨五入、無條件捨去、無條件進位
- 使用 JavaScript 的數字時的常見錯誤