ES6 數值的擴充套件

2022-09-14 06:09:13 字數 3907 閱讀 5926

es6 提供了二進位制和八進位制數值的新寫法,分別用字首0b/0b0o/0o表示。

0b111110111 === 503  //

true

0o767 === 503 //

true

與傳統的全域性方法isfinite()isnan()的區別在於,傳統方法先呼叫number()將非數值的值轉為數值,再進行判斷;

而 es6 這兩個新方法只對數值有效,number.isfinite()非數值一律返回false,number.isnan()nan一律返回false

isfinite(25)          //

true

number.isfinite(25) //

true

isfinite("25") //

true

number.isfinite("25") //

false

isnan(nan)

//true

number.isnan(nan) //

true

isnan("nan") //

true

number.isnan("nan") //

false

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

number.parseint === parseint     //

true

number.parsefloat === parsefloat //

true

parseint('12.6') //

12number.parseint('12.6') //

12parsefloat('12.45#') //

12.45

number.parsefloat('12.45#') //

12.45

number.isinteger()用來判斷乙個數值是否為整數。

number.isinteger(25)   //

true

number.isinteger(25.0) //

true

number.isinteger(25.1) //

false

number.isinteger() //

false

number.isinteger(true) //

false

j**ascript 能夠準確表示的整數範圍在-2^532^53之間(不含兩個端點),超過這個範圍,無法精確表示這個值。

es6 引入了number.max_safe_integernumber.min_safe_integer這兩個常量,用來表示這個範圍的上下限。

number.max_safe_integer === math.pow(2, 53) - 1     //

true

number.min_safe_integer === -math.pow(2, 53) + 1 //

true

number.issafeinteger()則是用來判斷乙個整數是否落在這個範圍之內。

number.issafeinteger('a') //

false

number.issafeinteger(nan) //

false

number.issafeinteger(infinity) //

false

number.issafeinteger(3) //

true

number.issafeinteger(1.2) //

false

number.issafeinteger(number.max_safe_integer)

//true

number.issafeinteger(number.max_safe_integer + 1) //

false

用於去除乙個數的小數部分,返回整數部分。對於非數值,math.trunc內部使用number方法將其先轉為數值。

math.trunc(4.9)       //

4math.trunc(-0.1234) //

-0math.trunc('123.4') //

123math.trunc(true) //

1math.trunc(false) //

0math.trunc(null) //

0

對於空值和無法擷取整數的值,返回nan

math.trunc();         //

nanmath.trunc(nan); //

nanmath.trunc('foo'); //

nanmath.trunc(undefined) //

nan

用來判斷乙個數到底是正數、負數、還是零。對於非數值,會先將其轉換為數值。

math.sign(-5)         //

-1math.sign(5) //

+1math.sign(0) //

+0math.sign(-0) //

-0math.sign('9') //

+1math.sign('') //

0math.sign(true) //

+1math.sign(false) //

0math.sign(null) //

0

對於空值和無法擷取整數的值,會返回nan

math.sign()           //

nanmath.sign(nan) //

nanmath.sign('foo') //

nanmath.sign(undefined) //

nan

用於計算乙個數的立方根。對於非數值,math.cbrt方法內部也是先使用number方法將其轉為數值。

math.cbrt(-1) //

-1math.cbrt(0) //

0math.cbrt(1) //

1math.cbrt(2) //

1.2599210498948734

math.cbrt('8') //

2math.cbrt('hello') //

nan

2 ** 2 //

42 ** 3 //

8

這個運算子的乙個特點是右結合,而不是常見的左結合。多個指數運算子連用時,是從最右邊開始計算的。

2 ** 3 ** 2   // 

相當於 2 ** (3 ** 2) 結果為 512

ES6 數值擴充套件

1.二進位制表示法 以0b開頭console.log b 0b111110111 4942.八進位制表示法 以0o開頭console.log 0o767 5033.判斷乙個數是否有盡 或者判斷是否為字元console.log 15 number.isfinite 15 isfinite 判斷數值是否...

es6 數值的擴充套件

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

es6數值的擴充套件

1 二進位制和八進位制的表示方法 es6提供了二進位制和八進位制的表示方法,分別用字首ob 二進位制 和0o 八進位制 表示 將二進位制或者八進位制轉換為十進位制可以呼叫number方法 2 number.isnan 和number.isfinite 前者用來判斷乙個數字是否為nan,後者用來判斷乙...