• ES6入门系列二(数值的扩展)


    ES6 在 Number对象上新增了很多方法

    1 .    Number.isFinite()判断是否为有限的数字

      和全局的isFinite() 方法的区别是

      isFinite('1') === true    ;    Number.isFinite('1') === false

      全局的isFinite()先调用Number() 方法  把  变量 转化为数字再进行判断, 所以返回 true,

      Number.isFinite()只能判断数字, 对于非数字一律返回false

    2  ,  Number.isNaN() 判断是否为NAN,

      只有NaN 才返回true, 否则返回false

    3 , ES6 把全局的parseInt()和parseFloat()   移植到了Number对象上,但行为保持不变,

     是为了逐步减少全局方法, 使语言逐渐模块化

    4  , Number.isInterger()判断是否为整数,  注意一点,javascript内部整数和浮点数是同样的存储方法  

        所以Number.isInteger(2) === Number.isInteger(2.0) 

    5,  Number.EPSILON是一个极小常量, 一般来说, 差值小于这个极小常量的两个数我们就认为是相等的

      因为JavaScript浮点数的计算不精确,0.1+ 0.2 = 0.30000000000000004

      如果 Math.abs(0.1+ 0.2 - 0.3)  < Number.EPSILON 我们就认为 0.1+ 0.2 =  0.3

    6 ,  Number.isSafeInteger()  

      我们知道JavaScript表示整数的精度范围在-2的53次方到2的53次方之间,

      超过这个范围的整数JavaScript就无法精确表示了,比如

      Math.pow(2, 53) + 1 ===  Math.pow(2 ,53)    / true

      ES6引入了两个数来表示这个范围

      Number.MAX_SAFE_INTEGER = Math.pow(2, 53)  - 1;

      Number.MIN_SAFE_INTEGER = Math.pow(2, 53)  + 1;

      判断一个整数是否落在这个区域就可以用 Number.isSafeInteger()  ,

      它只能传整数进去, 不是整数一律返回false

      

    7 , 基于6 我们知道JavaScript无法准确的表示大于2的53次方的整数, 

      由此ES6新增了一个bigint的数据类型, 数值后面加n 来区分数字

      typeof 1234n  ===  'bigint'

      当计算Math.pow(2, 53) + 1 的时候 

      9007199254740992 + 1 = 9007199254740992 (不精确)

      9007199254740992n + 1n = 9007199254740993n  (精确)

      在调用toString() 方法返回结果

      

      

  • 相关阅读:
    sql 查询多列 小于某值
    C#读取EXCEL 并输出到文本框
    字典
    MVC 接收文件
    C# DataTable 转 json
    MVC 返回json数据
    C# 获得指定路径扩展名 , 去除扩展名
    C# 分割URL地址
    sql语句参数化问题
    VC++学习之网络编程中的套接字
  • 原文地址:https://www.cnblogs.com/LHLVS/p/10920069.html
Copyright © 2020-2023  润新知