美文网首页
三 、数值的扩展、Math新增

三 、数值的扩展、Math新增

作者: della岳 | 来源:发表于2022-02-09 15:30 被阅读0次

十进制转二进制

const a = 5;
console.log(a.toString(2)); //101

二进制转十进制
parseInt用法:接受2个参数,参数1是字符串(不是字符串的会先强制转为字符串),参数2是参数1所属的基数,如2进制就是2。然后函数将其第一个参数转换为一个字符串,对该字符串进行解析,返回一个十进制整数或 NaN。

const a = 101;
console.log(parseInt(a,2)); //5

35整数转二进制,思路。一直除以2,取余数,除完为止。

35
35/2 = 17      1
17/2 = 8       1
8/2 = 4        0
4/2 = 2        0
2/2 = 1        0
1/2 = 0        1

0.375小数转二进制,思路。小数剩余部分一直乘以2,取整数部分

0.375
0.375*2 = 0.75      0
0.75*2 = 1.5        1
0.5*2 = 1.0         1

0B二进制 0O八进制

const b = 0B0101;
const c = 0O101;
console.log(b,c)

Number新增方法

//Number.isFinite,参数不是数值型,一律返回false
console.log(Number.isFinite(5)) //true
console.log(Number.isFinite(0.5)) //true
console.log(Number.isFinite(Infinity)) //false
console.log(Number.isFinite('imooc')) //false
console.log(Number.isFinite(true)) //false
console.log(Number.isFinite(10/0)) //false

console.log(Number.isNaN(5)); //false
console.log(Number.isNaN(NaN)); //true
// parseInt和window下的parseInt一样,全局数据会逐步模块化。。
console.log(Number.parseInt(5.5)); //5
console.log(Number.parseInt(-5.5)); //-5

console.log(Number.isInteger(-5)) //是否是整数

// 多位二进制,IEEE 754 双精度标准,精度缺失,导致小数计算不精准。可以让其变成整数再计算(如先x10,再/10)。
console.log(0.1+0.2 === 0.3) ; //false

Math

console.log(2 ** 10) //1024 幂运算符 等同于Math.pow
const max = Math.pow(2,53) //最大整数
console.log(max)
console.log(max+1)
console.log(Number.MAX_SAFE_INTEGER === max-1) //true
// 去掉小数部分,保留整数部分
console.log(Math.trunc(5.5)) //5
console.log(Math.trunc(true)) //1
console.log(Math.trunc(false)) //0
console.log(Math.trunc(undefined)) //NaN
console.log(Math.trunc(null)) //0
// 数值和字符串以外的都返回NaN,字符串不是数字开头的也返回NaN
console.log(Number.parseInt(5.5)) //5
console.log(Number.parseInt(true)) //NaN
console.log(Number.parseInt(false)) //NaN
console.log(Number.parseInt(undefined)) //NaN
console.log(Number.parseInt(null)) //NaN

相关文章

网友评论

      本文标题:三 、数值的扩展、Math新增

      本文链接:https://www.haomeiwen.com/subject/zpvwkrtx.html