概要: 在本教程中,您将了解 JavaScript 数字类型以及如何有效地使用它们。
JavaScript 数字简介
JavaScript 使用 number
类型来表示整数和浮点数。从技术上讲,JavaScript number
类型使用 IEEE-754 格式。
ES2020 引入了新的原始类型 bigint
来表示大于 253 – 1 的大整数。
为了支持各种类型的数字,JavaScript 使用不同的数字文字格式。
整数
以下显示了如何声明一个保存十进制整数的变量
let counter = 100;
Code language: JavaScript (javascript)
整数可以用以下格式表示
- 八进制 (基数 8)
- 十六进制 (基数 16)
当您在算术运算中使用八进制和十六进制数字时,JavaScript 会将它们视为十进制数字。
八进制数
八进制文字数字以数字零 (0) 开头,后面跟着一系列八进制数字 (0 到 7 之间的数字)。例如
let num = 071;
console.log(num);
Code language: JavaScript (javascript)
输出
57
如果八进制数字包含不在 0 到 7 范围内的数字,则 JavaScript 引擎会忽略 0 并将该数字视为十进制数字。例如
let num = 080;
console.log(num);
Code language: JavaScript (javascript)
输出
80
这种隐式行为可能会导致问题。因此,ES6 引入了新的 八进制文字,它以 0o
开头,后面跟着一系列八进制数字 (0 到 7)。例如
let num = 0o71;
console.log(num);
Code language: JavaScript (javascript)
输出
57
如果 0o
后面有无效数字,JavaScript 将发出以下语法错误
let num = 0o80;
console.log(num);
Code language: JavaScript (javascript)
输出
let num = 0o80;
^^
SyntaxError: Invalid or unexpected token
Code language: JavaScript (javascript)
十六进制数
十六进制数字以 0x 或 0X 开头,后面跟着任意数量的十六进制数字 (0 到 9,以及 a 到 f)。例如
let num = 0x1a;
console.log(num);
Code language: JavaScript (javascript)
输出
26
浮点数
要定义浮点数文字数字,您需要包含一个小数点,以及至少一个小数点后的数字。例如
let price = 9.99;
let tax = 0.08;
let discount = .05; // valid but not recommeded
Code language: JavaScript (javascript)
当您有一个非常大的数字时,可以使用 e 记法。e 记法表示一个数字应该乘以 10 的某个幂。例如
let amount = 3.14e7;
console.log(amount);
Code language: JavaScript (javascript)
输出
31400000
3.14e7
表示将 3.14
乘以 107
。
同样地,您可以使用 e 记法来表示一个非常小的数字。例如
let amount = 5e-7;
console.log(amount);
Code language: JavaScript (javascript)
输出
0.0000005
Code language: CSS (css)
5e-7
表示将 5 除以 10,000,000。
此外,JavaScript 会自动将所有小数点后至少有六个零的浮点数转换为 e 记法。例如
let amount = 0.0000005;
console.log(amount);
Code language: JavaScript (javascript)
输出
5e-7
浮点数的精度高达 17 位小数。当您对浮点数进行算术运算时,您经常会得到近似结果。例如
let amount = 0.2 + 0.1;
console.log(amount);
Code language: JavaScript (javascript)
输出
0.30000000000000004
Code language: CSS (css)
大整数
从 ES2022 开始,JavaScript 引入了 bigint
类型。bigint
类型存储大于 253 – 1 的整数。
大整数文字在整数文字的末尾带有 n
字符,例如
let pageView = 9007199254740991n;
Code language: JavaScript (javascript)
总结
- JavaScript 数字类型表示整数和浮点数。