myfreax

JavaScript number 数值

JavaScript使用number类型来表示整数和浮点值。number类型使用 IEEE-754格式

JavaScript number 数值
JavaScript number 数值

JavaScript 使用 number 类型来表示整数和浮点数。从技术上讲,JavaScript number类型使用 IEEE-754 格式。

ES2020 引入了一种新的原始类型 bigint,表示值大于 253  – 1 的大整数。为了支持各种类型的数字,JavaScript 使用不同的数字面量格式。

整数

代码 let counter = 100; 展示如何声明一个十进制整数的变量:

let counter = 100;

整数可以用以下格式表示:

  • 八进制(基数 8)
  • 十六进制(基于 16)

当你在算术运算中使用八进制和十六进制数时,JavaScript 将它们视为十进制数。

八进制数

八进制数字以数字零 0 开头,后跟八进制 从 0 到 7 的数字 。

let num = 071; 
console.log(num);
57

如果八进制数包含不在 0 到 7 范围内的数字,JavaScript 引擎将忽略 0 并将数字视为十进制数。

let num = 080; 
console.log(num);
80

这种隐式行为可能会导致问题。因此,ES6 引入了一种新的八进制字面量,它以 0o 开头,后八进制数字序列,从 0 到 7。

let num = 0o71; 
console.log(num);
57

如果您在之后输入无效数字0o,JavaScript 将抛出语法错误 ^^SyntaxError: Invalid or unexpected token。

let num = 0o80; 
console.log(num);
^^SyntaxError: Invalid or unexpected token

十六进制数

十六进制数字以 0x 或 0X 开头,后跟任意数量的十六进制数字, 0 到 9,以及 a 到 f。

let num = 0x1a; 
console.log(num);
26

浮点数

要定义浮点数,您需要包含一个小数点和至少一个数字。例如:

let price = 9.99;
let tax = 0.08;
let discount = .05; // 有效但不推荐

当你有一个非常大的数字时,你可以使用 e-notation。E-notation 表示一个数字应该乘以 10 的幂。

let amount = 3.14e7;
console.log(amount);
31400000

3.14e7 表示 3.14 乘以 107。同样,您可以使用 E-notation 来表示非常小的数字。

let amount = 5e-7; 
console.log(amount);
0.0000005

5e-7 表示取 5 除以 10,000,000,也就是 5e-7 表示除以 107

此外,JavaScript 会自动将小数点后至少有六个零的任何浮点数转换为 E-notation 记数法。

let amount = 0.0000005; 
console.log(amount);
5e-7

浮点数精确到小数点后 17 位。对浮点数进行算术运算时,通常会得到近似结果。例如:

let amount = 0.2 + 0.1; 
console.log(amount);

巨大的整数

JavaScript bigint 从 ES2022 开始引入此类型。bigint 类型存储值大于 2 ·53  – 1 的整数。一个大整数字面量在整数的末尾有一个字符 n

let pageView = 9007199254740991n;

结论

  • JavaScript Number 类型表示整数和浮点数。

内容导航