數值的擴充套件
二進位制字首0b(或0b)八進位制和0o(或0o)表示。
0b111110111 === 503 // true
0o767 === 503 // true
如果要將0b和0o字首的字串數值轉為十進位制,要使用number方法。
number('0b111') // 7
number('0o10') // 8
math 物件的擴充套件
math.sign() 用來判斷乙個數到底是正數、負數、還是零。對於非數值,會先將其轉換為數值。
math.cbrt()用於計算乙個數的立方根。
math.cbrt(-1) // -1
math.cbrt(0) // 0
math.cbrt(1) // 1
math.cbrt(2) // 1.2599210498948732
對於非數值,math.cbrt()方法內部也是先使用number()方法將其轉為數值。
math.clz32() 方法將引數轉為 32 位無符號整數的形式,然後返回這個 32 位值裡面有多少個前導 0
math.clz32(0) // 32
math.clz32(1) // 31
math.clz32(1000) // 22
也就在左移和右移有用到就可以看到最多可以移位多少。
math.imul() 返回兩個數以 32 位帶符號整數形式相乘的結果,返回的也是乙個 32 位的帶符號整數。
math.imul(2, 4) // 8
math.imul(-1, 8) // -8
看起來math.imul(2, 4) 和直接2*4結果是一樣的但是,實際上不一樣因為前面說過的精度問題,math.imul(2, 4)實際上等於(a * b)|0。所以對於那些很大的數的乘法,低位數值往往都是不精確的,math.imul方法可以返回正確的低位數值。
math.fround() 返回乙個數的32位單精度浮點數形式。
math.fround方法的主要作用,是將64位雙精度浮點數轉為32位單精度浮點數。(32位精度,1位符號,八位階碼,所以精度是23位,但是有一位是固定的所以是24位精度)如果小數的精度超過24個二進位制位,返回值就會不同於原值,否則返回值不變(即與64位雙精度值一致)。
// 未丟失有效精度
math.fround(1.125) // 1.125
math.fround(7.25) // 7.25
// 丟失精度
math.fround(0.3) // 0.30000001192092896
math.fround(0.7) // 0.699999988079071
math.fround(1.0000000123) // 1
math.hypot()返回所有引數的平方和的平方根
math.hypot(3, 4); // 5
math.hypot(3, 4, 5); // 7.0710678118654755
math.hypot(); // 0
math.hypot(nan); // nan
math.hypot(3, 4, 'foo'); // nan
math.hypot(3, 4, '5'); // 7.0710678118654755
math.hypot(-3); // 3
對數方法
const max = 2n ** (64n - 1n) - 1n;
bigint.asintn(64, max) // 9223372036854775807n
bigint.asintn(64, max + 1n) // -9223372036854775808n
bigint.asuintn(64, max + 1n) // 9223372036854775808n
boolean(0n) // false
boolean(1n) // true
number(1n) // 1
string(1n) // "1"
取反運算子(!)也可以將 bigint 轉為布林值!0n !1n
數**算
其他運算
0n < 1 // true
0n < true // true
0n == 0 // true
0n == false // true
0n === 0 // false
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,後者用來判斷乙...