• Typescript数值扩展使用


    1. //二,八,十六进制声明
    2. let b = 0b11110000;
    3. let o = 0o777;
    4. let x = 0xffff;
    5. console.log(b,o,x);
    6. //进制转换
    7. console.log(Number(0b11111111),Number(0xffffffff),Number(0o77777777));
    8. //数值有限判断,除了数值,其它全部返回false
    9. console.log(Number.isFinite(1.5));
    10. console.log(Number.isFinite(0.4));
    11. console.log(Number.isFinite(NaN));
    12. console.log(Number.isFinite(undefined));
    13. console.log(Number.isFinite(Infinity));//正无穷大
    14. console.log(Number.isFinite(-Infinity));//负无穷大
    15. console.log(Number.isFinite('hello'));
    16. console.log(Number.isFinite('98'));
    17. console.log(Number.isFinite(false));
    18. //数值NaN判断
    19. console.log(Number.isNaN(NaN));
    20. console.log(Number.isNaN(80));
    21. console.log(Number.isNaN('97'));
    22. console.log(Number.isNaN(true));
    23. console.log(Number.isNaN(999/NaN));
    24. console.log(Number.isNaN('false'/0));
    25. console.log(Number.isNaN('hello'/8));
    26. console.log(Number.isNaN('OK'/'NO'));
    27. //数值转换
    28. console.log(Number.parseInt('89.65'))
    29. console.log(Number.parseFloat('35.79@'));
    30. console.log(Number.isInteger(98));
    31. console.log(Number.isInteger(86.0));
    32. console.log(Number.isInteger(98));
    33. console.log(Number.isInteger('8888'));
    34. console.log(Number.isInteger(false));
    35. //最小常量,用于误差计算
    36. console.log('可接受的误差范围:',Number.EPSILON);
    37. //安全整数
    38. console.log('js的最小与最大整数范围:',Math.pow(-2,53),Math.pow(2,53));
    39. console.log(Math.pow(2,53) === (Math.pow(2,53) + 1))//true 计算结果不正确,后者比前者大1 ,因为超出2的53次方,计算不正确
    40. console.log(Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);
    41. console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER));
    42. console.log(Number.isSafeInteger(Number.MIN_SAFE_INTEGER));
    43. console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER+1));//false 非安全整数范围内
    44. console.log(Number.isSafeInteger(Number.MIN_SAFE_INTEGER-1));//false 非安全整数范围内
    45. //取浮点数整数部分
    46. console.log(Math.trunc(8.9),Math.trunc(-9.78),Math.trunc(-0.59),Math.trunc(0.9999));
    47. console.log(Math.trunc(NaN),Math.trunc('hello'),Math.trunc());//不传参数或者非数值都返回NaN
    48. //正负值判断
    49. console.log(Math.sign(9),Math.sign(-3),Math.sign(0),Math.sign(-0));//0返回正负0,其它正数返回1,负数返回-1
    50. //求立方根
    51. console.log(Math.cbrt(27),Math.cbrt(8),Math.cbrt(-27),Math.cbrt(0),Math.cbrt(1),Math.cbrt('hello'));//非数值返回NaN
    52. //求一个整数的二进制形式的32位无符号整数形式的前导0的个数
    53. console.log(Math.clz32(0));
    54. let zero=0;
    55. let clz32Count = Math.clz32(zero);
    56. console.log('0的二进制是:',`0b${'0'.repeat(32)}`);
    57. //浮点数,只计算整数部分
    58. console.log(Math.clz32(1.111))//31
    59. //数值外的其它类型全部返回32个前导0
    60. console.log(Math.clz32(true));
    61. console.log(Math.clz32());
    62. console.log(Math.clz32(NaN));
    63. console.log(Math.clz32(undefined));
    64. console.log(Math.clz32(null));
    65. console.log(Math.clz32('ok'));
    66. console.log(Math.clz32([]));
    67. console.log(Math.clz32({}));
    68. //求积
    69. console.log(Math.imul(2,8),Math.imul(-2,-8),Math.imul(-4,16));
    70. console.log(0x7fffffff,Math.imul(0x7fffffff,0x7fffffff));//Math.imul在计算超出2的53次方的数值时,可正确返回低位
    71. //求数值的浮点表示形式
    72. console.log(Math.fround(3.1415),Math.fround(1.20),Math.fround(1.1));
    73. //求参数平方和的平方根
    74. console.log(Math.hypot(3,6,9),Math.sqrt(3*3+6*6+9*9));//等同于 Math.sqrt(3*3+6*6+9*9)
    75. console.log(Math.sqrt(9));
    76. console.log('100的对数是:',Math.exp(100));
    77. console.log('100的对数-1是:',Math.expm1(100));
    78. console.log('100的对数是:',Math.log(100));
    79. console.log('100的对数是:',Math.log(1+100));
    80. console.log('100的对数-1是:',Math.log1p(100));//log1p(x) = log(1+x) x小-1返回NaN
    81. console.log('100的对数-1是:',Math.log10(100));//返回以10为底数的x的对数 这里x为100 x小0返回NaN
    82. console.log('100的对数-1是:',Math.log2(100));//返回以2为底数的x的对数 这里x为100 x小0返回NaN
    83. //三角函数
    84. let num=180;
    85. console.log(Math.sinh(num));//双曲正弦
    86. console.log(Math.cosh(num));//双曲余弦
    87. console.log(Math.tanh(num));//双曲正切
    88. console.log(Math.asinh(num));//反双曲正弦
    89. console.log(Math.acosh(num));//反双曲余弦
    90. console.log(Math.atanh(num));//反双曲正切
    91. //值正负判断
    92. //console.log(Math.signbit(-99)); //未支持
    93. console.log('计算2的6次方',2**6);//**为指数运算符
    94. //BigInt数据类型使用,计算超过2的53次方的数据,后缀加上n
    95. const max = BigInt(Number.MAX_SAFE_INTEGER);
    96. const two = 2n;
    97. const result = max + two;
    98. console.log(result);

    BigInt数据类型支持,计算超出2的53次方的数值 

     

     

     

  • 相关阅读:
    微信小程序注册指引
    关于log4net的详细使用教程
    让自定义的容器,也能基于范围循环
    HDFS完全分布式搭建及Hadoop HA集群搭建
    Markdown编辑语法
    猿辅导发布博物馆新知计划,上线文物科普记录片《文物也有AB面》
    UDS诊断:87服务-LinkControl(链接控制服务)
    linux中如何查看mac地址
    Apache DolphinScheduler 3.0.0 正式版发布!
    LeetCode - 79 单词搜索
  • 原文地址:https://blog.csdn.net/fittec/article/details/125890946