ES6之數值的擴展

二進制和八進制

ES6 提供了二進制和八進制數值的新的寫法,分別用前綴0b(或0B)和0o(或0O)表示。模塊化

二進制聲明:code

二進制的英文單詞是Binary,二進制的開始是0(零),而後第二個位置是b(注意這裏大小寫均可以實現),而後跟上二進制的值就能夠了。對象

let binary = 0B010101;
console.log(binary);  //21

八進制聲明:ip

八進制的英文單詞是Octal,也是以0(零)開始的,而後第二個位置是O(歐),而後跟上八進制的值就能夠了。it

let b=0o666;
console.log(b); //438

Number.isFinite(), Number.isNaN()

ES6 在Number對象上,新提供了Number.isFinite()Number.isNaN()兩個方法。console

Number.isFinite()用來檢查一個數值是否爲有限的(finite)。二進制

能夠使用Number.isFinite( )來進行數字驗證,只要是數字,不管是浮點型仍是整形都會返回true,其餘時候會返回false方法

Number.isFinite(15); // true
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false
Number.isFinite(-Infinity); // false
Number.isFinite('foo'); // false
Number.isFinite('15'); // false
Number.isFinite(true); // false

Number.isNaN()用來檢查一個值是否爲NaN英文

Number.isNaN(NaN) // true
Number.isNaN(15) // false
Number.isNaN('15') // false
Number.isNaN(true) // false

它們與傳統的全局方法isFinite()isNaN()的區別在於,傳統方法先調用Number()將非數值的值轉爲數值,再進行判斷,而這兩個新方法只對數值有效,語言

Number.isFinite()對於非數值一概返回false, Number.isNaN()只有對於NaN才返回true,非NaN一概返回false.

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

Number.parseInt(), Number.parseFloat()

ES6 將全局方法parseInt()parseFloat(),移植到Number對象上面,行爲徹底保持不變。

// ES5的寫法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45

// ES6的寫法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45

這樣作的目的,是逐步減小全局性方法,使得語言逐步模塊化。

Number.isInteger()

Number.isInteger()用來判斷一個值是否爲整數。須要注意的是,在 JavaScript 內部,整數和浮點數是一樣的儲存方法,因此 33.0 被視爲同一個值。

Number.isInteger(25) // true
Number.isInteger(25.0) // true
Number.isInteger(25.1) // false
Number.isInteger("15") // false
Number.isInteger(true) // false

Math.trunc()

Math.trunc方法用於去除一個數的小數部分,返回整數部分。

Math.trunc(4.1) // 4
Math.trunc(4.9) // 4
Math.trunc(-4.1) // -4
Math.trunc(-4.9) // -4
Math.trunc(-0.1234) // -0

對於非數值,Math.trunc內部使用Number方法將其先轉爲數值。

Math.trunc('123.456') // 123
Math.trunc(true) //1
Math.trunc(false) // 0
Math.trunc(null) // 0
相關文章
相關標籤/搜索