zoukankan      html  css  js  c++  java
  • 数值的扩展

    概述

    ES6提供了许多新的数值的扩展

    二进制和八进制表示法

    二进制使用前缀0b或0B,八进制使用前缀0o或0O

    ex:

    0b111110111 === 503 // true
    0o767 === 503 // true
    

    如果要将0b0o前缀的字符串数值转为十进制,要使用Number方法。

    ex:

    Number('0b111')  // 7
    Number('0o10')  // 8
    

    Number

    1.Number.isFinite()用来检查一个数值是否为有限的(finite),对于非数值一律返回false。

    2.Number.isNaN()用来检查一个值是否为NaNNumber.isNaN()只有对于NaN才返回true,非NaN一律返回false。

    以上两个方法与传统的全局方法isFinite()isNaN()的区别在于,传统全局方法先调用Number()将非数值的值转为数值,再进行判断,而以上两个新方法只对数值有效。

    isFinite(25) // true
    isFinite("25") // true
    Number.isFinite(25) // true
    Number.isFinite("25") // false
    
    isNaN(NaN) // true
    isNaN("NaN") // true
    Number.isNaN(NaN) // true
    Number.isNaN("NaN") // false
    Number.isNaN(1) // false
    

    3.ES6 将全局方法parseInt()parseFloat(),移植到Number对象上面,Number.parseInt(),Number.parseFloat()行为完全保持不变。这样做的目的,是逐步减少全局性方法,使得语言逐步模块化.

    // ES5的写法
    parseInt('12.34') // 12
    parseFloat('123.45#') // 123.45
    
    // ES6的写法
    Number.parseInt('12.34') // 12
    Number.parseFloat('123.45#') // 123.45
    
    Number.parseInt === parseInt // true
    Number.parseFloat === parseFloat // true
    

    4.Number.isInteger()用来判断一个值是否为整数。但是注意15和15.0被视为同一个值。

    Number.isInteger(25) // true
    Number.isInteger(25.0) // true
    Number.isInteger(25.1) // false
    Number.isInteger("15") // false
    Number.isInteger(true) // false
    

    Math对象

    1.Math.trunc()

    Math.trunc方法用于去除一个数的小数部分,返回整数部分。对于非数值,先用Number()方法转化为数值,对于空值和无法截取整数的值,返回NaN

    ex:

    Math.trunc(4.1) //4
    Math.trunc(-4.1) //-4
    
    Math.trunc('3.1415') //3
    
    Math.trunc(NaN) //NaN
    Math.trunc('foo') //NaN
    Math.trunc() //NaN
    

    2.Math.sign()

    Math.sign()方法判断一个数是正数,负数,还是0.非数值先转换为数值

    • 参数为正数,返回+1
    • 参数为负数,返回-1
    • 参数为0,返回0
    • 参数为-0,返回-0
    • 其他值,返回NaN
    Math.sign(-5) // -1
    Math.sign(5) // +1
    Math.sign(0) // +0
    Math.sign(-0) // -0
    Math.sign(NaN) // NaN
    Math.sign('9'); // +1
    Math.sign('foo'); // NaN
    Math.sign();      // NaN
    

    3.Math.cbrt()

    该方法用于计算一个数的立方根。同样,非数值先转换为数值。

    参考资料

    1.阮一峰《ES6入门》

      

  • 相关阅读:
    翻译:Razor剖析之第4部分:Razor页面
    学习第二十二天
    jQuery:选择器和事件
    学习第二十天@简单json+上传文件+Ado存储过程
    统计指定时间段内的周未(非周未)天数
    c#动态创建内存模型(笔记)
    cmd命令 任务计划 详解
    BAT教程:第四节(批处理中的变量)
    103个Windows XP运行命令
    BAT教程 :第二节(for命令详解 )
  • 原文地址:https://www.cnblogs.com/helloluo/p/7504286.html
Copyright © 2011-2022 走看看