JavaScript Number 和数学运算

JavaScript 不区分整数和浮点数,12312.31.23*e3-123NaNInfinity 都是合法的数字类型

JavaScript 的 Number 类型为双精度 IEEE 754 64 位浮点类型

General_double_precision_float

  • 1 位符号位: 0代表正数,1代表负数
  • 11 位指数为:用来表示次方数
  • 52 位尾数位:超出部分自动进一舍零

JS Number

NaN

Number.NaN:是一个特殊的数字,表示非数字;

  • NaN与所有值都不相等,包括它自己:NaN == NaN //false
  • NaN参与的计算结果均为NaN;
  • 唯一判断NaN的方法是通过isNaN()函数
    • isNaN(value): boolean:会首先尝试将传入的值转换为数字类型,不能转换为数字的一律返回true
    • Number.isNaN(value): boolean:会首先判断是否为数字,如是数值再判断是否为NaN
isNaN('a') // true
Number.isNaN('a')  //false

转换方法

  • Number.parseInt(value: string, radix?: number): number:将字符串或小数转化为整数
    • parseInt可以理解+-两个符号
    • radix的值为2~36,表示字符串的基数,如果不指定parseInt会忽略第一个字符及其以后的所有字符,返回到此为止的整数
    • parseInt会自动忽略字符串头部空格;
    • 转换从前到后进行转换,遇到无法转换的字符停止转换,返回已转换部分;
    • 如果第一个字符就无法转换返回NaN
  • Number.parseFloat(value: string): number:字符串转浮点数
    • parseInt()支持正负号,会忽略首尾空格,遇到非法字符会停止解析并返回已解析结果
    • parseFloat()会转换第一个.后为小数部分;
  • Number.prototype.toFixed(digits: number): string:数字小数点处理,保留digits位数的小数位数

数字运算

  • 加法:数字和字符串相加,执行字符串拼接
  • 取余:获取相除余数部分,结果正负由第一个运算子的符号决定
  • 其他:其他算数运算符一律专为数字运算;
  • 浮点数在运算的过程无法精确表示无限循环小数,所以会产生误差1 / 3 === (1 - 2 / 3) //false

BigInt

用来表示大于2^53 - 1的整数,在整数字面量后面加n的方式定义,也可以使用BigInt(value: number | string): BigInt方法。

results matching ""

    No results matching ""