跳到主要内容

数值

当一个数字直接出现在 JavaScript 程序中时,我们称它为数值直接量( numerical literal )。

JavaScript 采用 IEEE754 标准定义的 64 位浮点格式表示数字,这意味着它能表示的最大值是 ±1.797 693 134 862 315 7×10^308 ,最小值是 ±5×10^-324

整数精度:-2^53~2^53( -900719925740992 ~ 9007199254740992 ), 如果超出这个范围,整数将失去尾数的精确度。

浮点型数据可以具有小数点,它们采用的是传统科学计数法的语法。一个实数值可以被表示为整数部分后加小数点和小数部分。

此外,还可以使用指数法表示浮点型数据,即实数后跟随字母 e 或 E ,后面加上正负号,其后再加一个整型指数。这种计数法表示的数值等于前面的实数乘 10 的指数次幂。

JavaScript 中的数值

number 数值 , JavaScript 的数值不细分整数和浮点 , 所有的数值都是浮点型 :

  • 数值直接量
  • 八进制和十六进制
  • 常规数为 10 进制
  • 八进制以 '0' 为前缀
  • 十六进制 以 '0X' 或 '0x' 作为前缀
  • 数值运算
  • 防止浮点溢出
  • 特殊数值

检测一个数是否是数值可使用 isFinite 函数 , 因为它会筛除掉 NaN 和 Infinity

typeof 是个非常有用的一元运算符,可以用来检测数据类型。

NaN 是一个数值,它表示一个不能产生正常结果的运算结果。 NaN 不等于任何值,包括它自己。你可以用函数 isNaN(number) 检测 NaN 。

JavaScript 中的整数没有小数部分,也不包含小数点;而浮点数则一定包含小数点和小数部分。 JavaScript 生成的许多内部值,如数组的下标值、数组和字符串的 length 属性等,都由整数组成;浮点数一般是数值除法、特殊值(如 PI )和用户输入的值的结果。

整数和整数相加的结果还是整数;整数和浮点数相加的结果是浮点数;两个浮点数相加的结果一般也是浮点数,但当浮点数的和是一个整数时,结果就会是整数形式。

JavaScript 还可以处理十六进制数和八进制数。在数学表达式中,可以自由使用十进制、十六进制或八进制形式,但最终的显示结果都用十进制表示。进制之间的转换,必须使用用户定义的函数。

进行算术运算时的注意事项

在进行算术运算时,注意到运算符两端的值有可能不是数字,那么会尝试将该数据转换为数字,如果能转换为数字,则可以进行算术运算;否则,在运算时肯定会返回非数字常量 NaN 。