PJCHENder 未整理筆記

[JS] JavaScript 數值與算數(Number and Math)

2017-10-26

[JS] JavaScript 數值與算數(Number and Math)

@(JavaScript)

1
2
3
2 ** 3           // 2 的 3 次方(exponential)
num += 1 // 遞增
num -= 1 // 遞減

常用

產生隨機號碼

keywords: generate, random number, snippet
snippets: random

Math.random() 會產生 0(包含)到 1(不包含)的數值。

1
2
3
4
5
6
//  包含 min 和 max 的整數
function getRandomIntInclusive(min, max) {
// min = Math.ceil(min);
// max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min; // The maximum is inclusive and the minimum is inclusive
}

無條件捨去到整數

1
2
3
4
5
// 使用 Math.floor()
Math.floor(30.78) // 30

// 使用 ~~
~~30.78 // 30

無條件進位

1
2
// 使用 Math.ceil
Math.ceil(30.78) // 31

四捨五入

1
2
3
4
5
6
// 四捨五入到整數位
Math.round(30.78) // 31

// 四捨五入
3.12345.toFixed(0) // 四捨五入到整數
3.12345.toFixed(2) // 四捨五入到小數第二位

Bitwise Operator @ MDN

檢驗是否為數值

keywords: Number.isNaN(), isNaN()
1
2
3
4
5

const validateNumber = n => !Number.isNaN(parseFloat(n)) && Number.isFinite(n) && Number(n) === n;

validateNumber(0) // true
validateNumber('0') // false

29.1 Use Number.isNaN instead of global isNaN @ airbnb
validate number @ 30 seconds of code

次方(Power)

1
2
Math.pow(2, 4);      // 2^4 = 16
2**4 // 2^4 = 16

計算運算子

Arithmetic Operator @ MDN

掃描二維條碼,分享此文章