• JavaScript(三)数值类型


    整数和浮点数

    JavaScript内部存储数字都是按64位浮点类型存储的,无论整数和小数。容易造成混淆的是,某些位运算必须要整数才可以运行,所以会自动将64位浮点数转化为32位整数。再进行位运算。在JavaScript中,1和1.0是一样的

    1 == 1.0 true
    0.1+0.2 == 0.3 false
    0.3/0.1 = 2.99999999996
    (0.3-0.2) === (0.2-0.1) false
    

    总之,涉及小数的运算要小心

    数值精度

    1. 在JavaScript中,浮点数的64位组成,从最左边开始
      1. 第1位:符号位,0代表整数,1代表负数
      2. 第2位到第12位:指数部分
      3. 第13位到第64位:小数部分(即有效数字)
    2. 一个64位数字在JavaScript中的表示
      (-1)符号位 * 1.xxxxxx小数部分 * 2^指数部分(0-2047)
      其中,符号位有1位,指数部分占11位,小数部分占52位,决定精确度的是52位小数部分,IEEE 754规定,有效数字第一位默认是1,不保存在64位之中,也就是说有效数字的形式为1.xxxxxx,其中xxxxxxxx的部分保存在64位浮点数中,因此,JavaScript能提供的有效数字长度为53个二进制位。
    3. 数值范围

    JavaScript能够表示21024到2-1023(开区间),超过这个范围的数将无法表示。如果一个数大于等于2的1024次方,就会发生“正向溢出”,则JavaScript无法表示这么大的数字就会返回Infinity
    如果一个数字小于等于2的-1075次方(指数部分最小值-1023,再加上小数部分的52位),那么就会发生为“负向溢出”,会直接返回0.

    数值的表示法

    JavaScript中的数字可以用数值直接表示例如35(十进制),也可以是0xff(十六进制)。也可以采用科学计数法来表示例如,
    123e3
    123e-3

    数值的进制

    1. 二进制:前缀0b或者0B
    2. 八进制:0o或者0O
    3. 十进制:没有前缀
    4. 十六进制:0x或者0X

    特殊数值

    NaN

    1. NaN:表示(Not a Number)
      typeof NaN 返回number

    2. NaN不等于任何数值,包括它本身

    Intifity

    1. Intifity表示无穷,用来表示两种情况,一种是数值太大,另一种是数值太小,此外,一个非零数除以零返回的也是NaN
    2. Intifity遵循四则运算

    与数值相关的全局方法

    parseInt

    1. parseInt():将字符串转化为--整数--,如果字符串中有空格会自动删去空格,如果不是字符串会先转化为字符串
    2. 转化的时候会从第一个字符开始转化,如果转化过程中转化不下去,会返回已经转化好的部分
    3. 如果第一个字符串不是数字,无法转化则会直接返回NaN
    4. 不支持科学计数法
    5. 如果以0x开头,会自动按照十六进制转化
    6. 进制转化:parseInt默认第二个参数是10,即转化成十进制数,此外还可以传其他整数,这个数必须是2到36之间,才有意义,否则会返回NaN,如果第二个参数是null或者undefined则直接忽略。

    parseFloat

    1. 用于将一个字符串转化为浮点数
    2. 支持科学计数法

    isNaN

    1. 可以判断传入的参数是否是NaN,这个方法只对数值有效。
    2. 使用isNaN时最好判断一下类型
    3. 因为NaN是唯一不等于自身的值这个特点,判断是否为NaN的最可靠的方法是return value !=== value

    isFinite

    1. isFinite返回一个Boolean类型的值,用来判断某个值是否为正常的数值
    isFinite(Infinity) // false
    isFinite(-Infinity) // false
    isFinite(NaN) // false
    isFinite(undefined) // false
    
  • 相关阅读:
    如何清除el-dialog中的表单验证
    购物车小球飞入动画
    node的应用场景
    如何在Ubuntu Server 18.04 LTS中配置静态IP地址
    在Ubuntu上启用和禁用NetworkManager
    gcc常用命令
    cmake入门
    模拟实现pwd命令
    模拟实现ls命令
    qmake生成的Makefile在make install时遇到的一次错误
  • 原文地址:https://www.cnblogs.com/charlottepl/p/13739117.html
Copyright © 2020-2023  润新知