zoukankan      html  css  js  c++  java
  • Number常用方法函数

    Number类型应该是ECMAScript中最令人关注的数据类型了,这种类型使用IEEE754来表示整数和浮点数,并针对Number相关特点定义了一系列相关的方法函数。

    isFinite()

    在JavaScript中,Number类型能表示的最大值是±1.7976931348623157e+308,保存在Number.MAX_VALUE中,最小值是±5e-324,保存在Number.MIN_VALUE中,如果得到的数值超出了JavaScript数值范围,就会自动转换成Infinity(无穷大),因为Infinity是不能参加计算的,所以为了计算的正确性,在某些时候,使用isFinite()来检测监控数值是否是无穷大是有必要的。这个函数在参数位于最大值与最小值之间时返回true,否则返回false。

    isNaN()

    在JavaScript中,为了避免计算抛出错误影响其他代码执行,用NaN来表示一个本来要返回数值的操作数未返回数值的情况。NaN有两个特点:任何涉及 NaN的操作都会返回NaN;NaN与任何值都不相等,包括NaN本身。

    针对NaN的这两个特点,ECMAScript定义了isNaN()函数,用来判断接受的参数是否为一个数值,因此,在收到参数后,首先尝试将该参数转为数值,如果可以转,则返回false,否则就返回true。

    toString()

    除了十进制整数外,JavaScript还支持八进制和十六进制的整数,其中八进制字面值的第一位必须是零,然后后面是0~7之间的数字,如果超出这个范围,就会直接忽略前面的零,将后面的数值当做十进制处理。十六进制的前两位必须是0想,后面跟十六进制数字(0~9及A~F),在进行算数计算是,所有的八进制和十六进制都将被转换成十进制数值,我们也可以人为的用toString()方法,将数值表示成接受的参数所指定的进制数。

    不仅数值类型有toString()方法,布尔值、对象和字符串也都有该方法,但是null和undefined没有该方法,在不知道要转换的是不是null或者undefined的情况下,还可以使用String()方法,这个函数可以将任何类型的值转为字符串,遵循以下规则:

    • 如果有toString()方法,则调用该方法,返回没参数情况下的相应结果。
    • 如果是null,则返回null
    • 如果是undefined,则返回undefined

    除了上面的函数外,JavaScript中还有三个函数,主要用来将非数值转为数值,具体如下。

    Number()

    Number()的转换规则主要包括下列几条:

    • 如果是Boolean值,true被转换为1,false被转换为0。
    • 如果是数字,直接返回。
    • 如果是null,返回0。
    • 如果是undefined,返回NaN。
    • 如果是字符串,又分以下几种
    1. 如果是值包含数字(包括前面的正负号),则将其转换为十进制数值(如果前面有零,直接忽略)。
    2. 如果字符串中包含有有效的十六进制格式,则转换为相同大小的十进制数(八进制的会直接忽略前面的0,同上一条)。
    3. 如果字符串为空,则转换为0.
    4. 如果字符串中包含出上述格式外的字符,则转换为NaN。

    parseInt()

     parseInt()函数主要用来讲字符串转换为数字,分以下几种情况:

    • 空字符串返回NaN
    • 非空字符串,首先忽略前面的空格,直到找到第一个非空格字符
    1. 为数字字符,则继续解析后续字符或者遇到了非数字字符时返回相应数字(前数字,后非数字的,返回其中的数字部分,小数点为非数字字符)
    2. 非数字字符,返回NaN(前非数字,后数字的,直接返回NaN)
    • 能够正确识别十六进制,将0x开头的数字字符自动解析为十六进制对应的十进制
    • 遇到以0开头的数字字符,ECMAScript3和5存在分歧,ECMAScript3会将其解析为八进制,ECMAScript5会忽略前面的0,将剩下的解析会十进制,为此,可以为此函数提供第二个参数,转换的基数。

    parseFloat()

    parseFloat()的用法和parseInt()类似,存在两处不同之处

    • 可以识别第一个小数点,第二个小数点被认为无效,包括其后面的内容
    • 只能识别十进制数,所以没有第二参数,八进制前的0会被忽略,后续的按照十进制转换,十六进制会被识别为0(识别到x时,认为是非数字字符,后续的全部被忽略)

    参考资料

    JavaScript权威指南(第六版)

    JavaScript高级程序设计(第三版)

    JavaScript王者归来

  • 相关阅读:
    JSP中文乱码问题
    PLSQLDeveloper 提示不能初始化?
    Sublime Text3 (转) 配置 以及快捷键配置
    收藏博客
    Struts2 验证框架 validation.xml 常用的验证规则
    正则表达式
    Frameset 框架集 导航栏 的使用
    nginx + tomcat + memcached 做负载均衡及session同步
    elasticsearch 7.2 集群节点配置
    禁止、允许MySQL root用户远程访问权限
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/8934045.html
Copyright © 2011-2022 走看看