欢迎大家来到IT世界,在知识的湖畔探索吧!
JavaScript 中的数字处理是基础且重要的部分,它涉及数字类型、运算规则、内置方法等内容。下面我们系统梳理 JavaScript 数字相关的核心知识:
一、数字类型本质
JavaScript 中只有一种数字类型 ——64 位双精度浮点数,无论整数、小数都统一用这种格式存储。
这意味着:
- 整数和小数没有类型区分(如 5 和 5.0 本质相同)
- 存在精度限制(对极大 / 极小数字或高精度计算可能有误差)
欢迎大家来到IT世界,在知识的湖畔探索吧!
二、数字的表示方式
1. 十进制(默认)
let a = 123; // 整数 let b = 123.45; // 小数 let c = .45; // 省略整数部分(等价于 0.45) let d = 123.; // 省略小数部分(等价于 123)
欢迎大家来到IT世界,在知识的湖畔探索吧!
2. 其他进制
- 二进制:前缀 0b 或 0B(0-1)
欢迎大家来到IT世界,在知识的湖畔探索吧!let bin = 0b1010; // 二进制 1010 → 十进制 10
- 八进制:前缀 0o 或 0O(0-7)
let oct = 0o17; // 八进制 17 → 十进制 15
- 十六进制:前缀 0x 或 0X(0-9, a-f/A-F)
欢迎大家来到IT世界,在知识的湖畔探索吧!let hex = 0xFF; // 十六进制 FF → 十进制 255
3. 科学计数法
用于表示极大或极小的数字:
let large = 123e5; // 123 × 10⁵ → let small = 123e-5; // 123 × 10⁻⁵ → 0.00123
三、算术运算符
运算符 |
说明 |
示例 |
结果 |
|
+ |
加法 |
2 + 3 |
5 |
|
– |
减法 |
5 – 2 |
3 |
|
* |
乘法 |
3 * 4 |
12 |
|
/ |
除法 |
10 / 2 |
5 |
|
% |
取余(模运算) |
10 % 3 |
1 |
|
|
幂运算(ES6+) |
2 3 |
8(等价于 Math.pow (2,3)) |
四、特殊数字值
1.Infinity(无穷大)
- 表示超过 JavaScript 最大可表示数字的值
- 特性:
欢迎大家来到IT世界,在知识的湖畔探索吧!console.log(1 / 0); // Infinity console.log(Infinity + 1); // Infinity(无穷大+1还是无穷大) console.log(-Infinity); // 负无穷大(如 -1 / 0)
2.NaN(非数字,Not a Number)
- 表示 “不是有效数字” 的结果(但类型仍为 number)
- 产生场景:
console.log("abc" / 2); // NaN(字符串无法参与除法) console.log(0 / 0); // NaN(数学上无意义)
- 注意:NaN 不等于任何值(包括自身),需用 Number.isNaN() 检测:
欢迎大家来到IT世界,在知识的湖畔探索吧!console.log(NaN === NaN); // false console.log(Number.isNaN(NaN)); // true
五、常用数字处理方法
1. 全局转换函数
- Number():将值转为数字(严格转换)
Number("123"); // 123 Number("123abc"); // NaN(包含非数字字符) Number(true); // 1(布尔值 true→1,false→0)
- parseInt(str, radix):解析整数(忽略非数字字符,可指定进制)
欢迎大家来到IT世界,在知识的湖畔探索吧!parseInt("123abc"); // 123(忽略后面的非数字) parseInt("11", 2); // 3(二进制 "11" 转十进制)
- parseFloat(str):解析浮点数(只支持十进制)
parseFloat("123.45abc"); // 123.45
2.Math对象(核心工具)
Math 是内置对象,提供大量数学运算方法(无需实例化):
|
方法 |
说明 |
示例 |
结果 |
|
Math.abs(x) |
取绝对值 |
Math.abs(-5) |
5 |
|
Math.round(x) |
四舍五入 |
Math.round(2.6) |
3 |
|
Math.ceil(x) |
向上取整 |
Math.ceil(2.1) |
3 |
|
Math.floor(x) |
向下取整 |
Math.floor(2.9) |
2 |
|
Math.max(…nums) |
取最大值 |
Math.max(1, 3, 2) |
3 |
|
Math.min(…nums) |
取最小值 |
Math.min(1, 3, 2) |
1 |
|
Math.random() |
生成 [0,1) 随机数 |
Math.random() |
如 0.345 |
|
Math.pow(x, y) |
x 的 y 次方 |
Math.pow(2, 3) |
8 |
|
Math.sqrt(x) |
开平方 |
Math.sqrt(16) |
4 |
六、常见陷阱与注意事项
欢迎大家来到IT世界,在知识的湖畔探索吧!console.log(0.1 + 0.2); // 0.000004(而非 0.3)解决:用 toFixed() 控制小数位数,或转整数运算。
console.log(1 + 2); // 3(数字加法) console.log("1" + 2); // "12"(字符串拼接) console.log(+"1" + 2); // 3(用 + 快速转为数字)
欢迎大家来到IT世界,在知识的湖畔探索吧!console.log(Number.MAX_SAFE_INTEGER); // 40991(2^53 - 1)
大整数需求可用 BigInt 类型(后缀 n):
let big = 40993n; // BigInt 类型,可精确表示
通过掌握这些基础,你可以应对 JavaScript 中大部分数字处理场景。实际开发中,复杂计算建议结合工具库(如 decimal.js)处理精度问题。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/145352.html