• 阅读javascript高级程序设计随笔(三)


    2.4.5 Number类型

      进制的书写:

      八进制字面值的第一位必须是0,然后是由0~7的数字组成,如果字面值中的数字超出了范围,那么前导零将被忽略。十六进制字面值的前面两位必须是0x,后面就由(0~9及A~F),字母可以大写,也可以小写。

    注意:八进制字面量在严格模式下是无效的,会导致支持的Javascript引擎抛出错误。

     浮点数值计算会产生舍入误差。

      数值范围:

    在超出数值的范围时,如果是正数会转换成Infinity,负数就转换成-Infinity.可以使用isFinite()函数。访问Infinity可以使用Number.MAX_VALUE

    或者Number.POSITIVE_INFINITY。访问-Infinity可以使用Number.MIN_VALUE或Number.NEGATIVE_INFINITY。

      NaN:

      NaN表示非数值。任何数值除以0会返回NaN。

     任何涉及NaN的操作都会返回NaN。NaN与任何值都不相等,包括NaN本身。

      数值转换:

    Number()函数的转换规则如下:

    1.如果是Boolean值,true和false将分别被转换为1和0。

    2.如果是数字值,只是简单的传人和返回。

    3.如果是null值,返回0。

    4.如果是undefined,返回NaN。

    5.如果是字符串,遵循以下规则:

      5.1 如果字符串只包含数字(包括前面带正号或负号),则将其转换为十进制数值,即"1"变成1,"123"变成123,而"011"会变成          11(注意:前导的零被忽略了);

      5.2如果字符串中包含有效的浮动格式,如"1.1",则将其转换为对应的浮点数值(注意:前导的零被忽略);

      5.3如果字符串中包含有效的十六进制格式,例如"0xf",则将其转换为相同大小的十进制整数值;

      5.4如果字符串是空的(不包含任何字符),则将其转换为0;

      5.5如果字符串中包含除上述格式之外的字符,则将其转换为NaN.

     6.如果是对象,则调用对象的valueof()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。

     parseInt()函数

     parseInt()函数在转换字符串时,它会忽略字符串前面的空格,直到找到第一个非空格字符串。如果第一个字符不是数字字符或者负号,parseInt()就会返回NaN。如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。如"123abc"会转换为123。

    注意:Number()对空字符返回0,而parseInt()返回的是NaN。

    为了区别parseInt在解析上的困惑。在转换为其他进制,会使用两个参数,第一个参数是需要转换的字符串,第二个参数是字符串里面的数据是多少进制的。

    例子:

    var num1 = parsetInt("10",2);  //2(按照二进制解析)

    var num1 = parsetInt("10",8);  //8(按照二进制解析)

    var num1 = parsetInt("10",10);  //10(按照二进制解析)

    var num1 = parsetInt("10",16);  //16(按照二进制解析)

     

  • 相关阅读:
    jQuery全选反选全不选
    Ubuntu安装VMware Workstation8.0.3
    ubuntu安装的软件如何启动
    ubuntu装VirtualBox遇到的问题
    你是优秀的PHP程序员吗?
    VMWare 三种工作模式(bridged、hostonly、NAT)
    最近要做的事
    090224
    2月23日 月曜日
    周五 26日
  • 原文地址:https://www.cnblogs.com/night2013/p/3498405.html
Copyright © 2020-2023  润新知