1.数值分隔符

        说明:可以通过_添加分隔符,提高可读性,但是数值分隔符可以不指定间隔的位数

         let number = 1_000
        console.log(number); //1000
        let number1 = 1_0_0_0
        console.log(number === number1); //true

        注意:

  1. 不能放在数值的最前面或者最后,并且不能两个相邻的分隔符
  2.  小数点的前后也不能有分隔符
  3. 分隔符主要原因是为了编码书写数值的方便而不是处理外部输入的数据,所以不能被Number()方法,parseInt()方法,parseFloat()方法转换

2.Nunber.isFinite

        说明:检查一个数值是否为有限的,如果类型不是数值类型,全都返回false

         const num1 = Number.isFinite(15)
        console.log(num1); //true
        const num2 = Number.isFinite(true)
        console.log(num2); //false

3.Number.isNaN

        说明:检查一个值是否为空,如果参数的类型不是NaN,全都返回false

        console.log(Number.isNaN(5));  //false
        console.log(Number.isNaN(NaN)); //true 

4.parseInt,parseFloat

        4.1 ES5中    

         console.log(parseInt(5.5)); //5
        console.log(parseFloat(6.66)); //6.66

        4.2  ES6中

        console.log(Number.parseInt(6.6)); //6
        console.log(Number.parseFloat(6.6)); //6.6

        注意:ES6中目的是减少全局性方法,使得语言逐渐规范化

5.Number.isInteger

        说明:判断一个数值是否为整数,但是如果对于精度要求特别高,那么不建议使用

        console.log(Number.isInteger(5.5)); //false
        console.log(Number.isInteger(5)); //true

6.Math对象的扩展

          6.1Math.trunc方法

                说明:用于去除一个数的小数部分,返回整数部分

        console.log(Math.trunc(5.5)); //5
        console.log(Math.trunc(-5.9)); //-5

               对于非数值的类型会先转换成数值型,在截取

       console.log(Math.trunc(true)); //1
        // 关于null会被Number转换成0
        console.log(Math.trunc(null)); //0
        console.log(Number(null)); //0

                对于空值和无法截取整数的值,返回NaN

        console.log(Math.trunc(NaN)); //NaN
        console.log(Math.trunc('foo')); //NaN

        6.2Math.sign()

                说明:判断一个属到底是正数,负数,还是零,对于非数值的,会先转成数值

        console.log(Math.sign(2)); //1
        console.log(Math.sign(-2));//-1
        console.log(Math.sign(0)); //0
        console.log(Math.sign(-0));//-0
        console.log(Math.sign("good")); //Nan

                总结:数为正数,返回 + 1;参数为负数,返回 - 1;参数为 0,返回0;参数为 - 0,返回 - 0;其他值,返回NaN。

        6.3Math.cbrt

                说明:计算一个数的立方根               

        console.log(Math.cbrt('8')); //2
        console.log(Math.cbrt("8.8")); //2.0645602309127344

7.BigInt数据类型

        说明:为了与Nunber类型区别,BigInt类型的数据必须添加后缀n,并且bigint数据类型是整数 

        const num3 = 12n
        const num4 = 20n
        console.log(num3 + num4); //32n

        BigInt与普通整数是两种值,它们之间并不相等

      console.log(num3 == 12); //false

        BigInt函数与Number函数基本一致

        console.log(BigInt(12));  //12n

8.转换规则

        说明:Boolean函数,Number函数,String函数可将BigInt类型转变成布尔,数字,字符串,转换BigInt成为其他类型中n会消失。

        console.log(Boolean(5n)); //true
        console.log(Number(5n)); //5
        console.log(String(5n)); //5

      取反运算符,也可以将BigInt转为布尔值

        console.log(!12n);  //false
        console.log(!0n);   //true

        数学运算,几乎所有的运算符都可以用在BigInt中

        console.log(12n / 3n); //4n
        console.log(12n * 10n); //120n

总结:对于大部分的Math的方法,对于非数值的参数,都会转成数值型,再执行

05-11 02:19