數值的擴充套件

2022-08-23 21:06:07 字數 2409 閱讀 6300

es6提供了許多新的數值的擴充套件

二進位制使用字首0b或0b,八進位制使用字首0o或0o

ex:

0b111110111 === 503 // true

0o767 === 503 // true

如果要將0b0o字首的字串數值轉為十進位制,要使用number方法。

ex:

number('0b111')  // 7

number('0o10') // 8

1.number.isfinite()用來檢查乙個數值是否為有限的(finite),對於非數值一律返回false。

2.number.isnan()用來檢查乙個值是否為nannumber.isnan()只有對於nan才返回true,非nan一律返回false。

以上兩個方法與傳統的全域性方法isfinite()isnan()的區別在於,傳統全域性方法先呼叫number()將非數值的值轉為數值,再進行判斷,而以上兩個新方法只對數值有效。

isfinite(25) // true

isfinite("25") // true

number.isfinite(25) // true

number.isfinite("25") // false

isnan(nan) // true

isnan("nan") // true

number.isnan(nan) // true

number.isnan("nan") // false

number.isnan(1) // false

3.es6 將全域性方法parseint()parsefloat(),移植到number物件上面,number.parseint(),number.parsefloat()行為完全保持不變。這樣做的目的,是逐步減少全域性性方法,使得語言逐步模組化.

// es5的寫法

parseint('12.34') // 12

parsefloat('123.45#') // 123.45

// es6的寫法

number.parseint('12.34') // 12

number.parsefloat('123.45#') // 123.45

number.parseint === parseint // true

number.parsefloat === parsefloat // true

4.number.isinteger()用來判斷乙個值是否為整數。但是注意15和15.0被視為同乙個值。

number.isinteger(25) // true

number.isinteger(25.0) // true

number.isinteger(25.1) // false

number.isinteger("15") // false

number.isinteger(true) // false

1.math.trunc()

math.trunc方法用於去除乙個數的小數部分,返回整數部分。對於非數值,先用number()方法轉化為數值,對於空值和無法擷取整數的值,返回nan

ex:

math.trunc(4.1) //4

math.trunc(-4.1) //-4

math.trunc('3.1415') //3

math.trunc(nan) //nan

math.trunc('foo') //nan

math.trunc() //nan

2.math.sign()

math.sign()方法判斷乙個數是正數,負數,還是0.非數值先轉換為數值

math.sign(-5) // -1

math.sign(5) // +1

math.sign(0) // +0

math.sign(-0) // -0

math.sign(nan) // nan

math.sign('9'); // +1

math.sign('foo'); // nan

math.sign(); // nan

3.math.cbrt()

該方法用於計算乙個數的立方根。同樣,非數值先轉換為數值。

1.阮一峰《es6入門》

數值的擴充套件

es6在內建的math和number的內建物件上做出了很多新的擴充套件,常用總結 1.number.isfinite 和number.isnan number.isfinite 方法 判斷數值是否有限 如果有限返回ture,否則返回false。當傳入引數不是數值時,返回false number.is...

十四 數值的擴充套件

1.number.isfinite 檢測乙個數值是否為有限數 console.log number.isfinite 100 true console.log number.isfinite 100 0 false console.log number.isfinite infinity false...

es6 數值的擴充套件

1 二進位制的表示 字首 0b 八進位制的表示 0o 2 number.isfinite number.isnan 3 number.parseint number.parsefloat 4 number.isinteger number.epsilon 5 number.issafeinteger...