Number

63 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 N 天,点击查看活动详情

可存储整型和浮点型数据

整型

整型可用10进制、8进制和16进制表示。

10进制正常表示

8进制:

对于八进制字面量,第一个数字必须是零,然后是相应的八进制数字。如果字面量中包含的数字超出了应有的范围【不为8进制数】,就会忽略前缀的零,后面的数字序列会被当成十进制数。

【八进制字面量在严格模式下是无效的,会导致 JavaScript 引擎抛出语法错误】

16进制:

前缀0x,不可写为0X. 之后是十六进制数,字母大小写均可。

正零与负零

由于 JavaScript 保存数值的方式,实际中可能存在正零(+0)和负零(-0)。正零和负零在所有情况下都被认为是等同的

如何判断

浮点型

精确度

浮点值的精确度最高可达 17 位小数

如何赋值浮点数

要定义浮点值,数值中必须包含小数点,而且小数点后面必须至少有一个数字。虽然小数点前面不是必须有整数,但推荐加上。

数值尽可能会被转化为整数

因为存储浮点值使用的内存空间是存储整数值的两倍,所以 ECMAScript 总是想方设法把值转换为整数。在小数点后面没有数字的情况下,数值就会变成整数。类似地,如果数值本身就是整数,只是小数点后面跟着 0(如 1.0),那它也会被转换为整数

科学计数法

格式为一个数值(整数或浮点数)后跟一个大写或小写的字母 e,再加上一个要乘的 10 的多少次幂。

3.125e7

默认情况下,ECMAScript 会将小数点后至少包含 6 个零的浮点值转换为科学记数法

可表示的最小值与最大值

最小值为

Number.MIN_VALUE

最大值为

Number.MAX_VALUE

正无穷大与负无穷大

任何无法表示的负数以-Infinity(负无穷大)表示,任何无法表示的正数以 Infinity表示。

使用Number.NEGATIVE_INFINITYNumber.POSITIVE_INFINITY获取

如何判断该值是否为有限值

使用isFinite()函数,返回true则代表有限大

NaN

该值表示不是数值,用于表示本来要返回数值的操作失败了

  • 0、+0 或-0 相除会返回 NaN
  • 如果分子是非 0 值,分母是有符号 0 或无符号 0,则会返回 Infinity 或-Infinity
  • 涉及任何的NaN操作,始终返回NaN

如何判断NaN

NaN之前互不相等,即 NaN==NaN返回false。

所以要用isNaN(数据)函数进行判断。

该函数会尝试把参数转换为数值。某些非数值的值可以直接转换成数值任何不能转换为数值的值都会导致这个函数返回true,否则返回false。

如何判断数值是否为整数

Number.isInteger。用于辨别一个数值是否保存为整数。

数值安全范围检测

句末语

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 N 天,点击查看活动详情