Appearance
JavaScript Number 对象
什么是 Number 对象
Number 对象是 JavaScript 中用于处理数字的内置对象。它可以表示整数、浮点数、负数等各种数值类型。
Number 对象的创建
你可以通过以下方式创建 Number 对象:
javascript
// 直接赋值
let num1 = 123;
// 使用 Number 构造函数
let num2 = new Number(123);
// 使用 Number 函数转换
let num3 = Number("123");Number 对象的属性
Number 对象具有以下常用属性:
javascript
console.log(Number.MAX_VALUE); // 最大数值
console.log(Number.MIN_VALUE); // 最小数值
console.log(Number.MAX_SAFE_INTEGER); // 最大安全整数
console.log(Number.MIN_SAFE_INTEGER); // 最小安全整数
console.log(Number.NaN); // 非数字值
console.log(Number.POSITIVE_INFINITY); // 正无穷大
console.log(Number.NEGATIVE_INFINITY); // 负无穷大Number 对象的方法
1. 转换方法
javascript
let num = 123.456;
console.log(num.toString()); // 转换为字符串
console.log(num.toFixed(2)); // 保留指定位数小数
console.log(num.toPrecision(4)); // 保留指定有效数字
console.log(num.toExponential(2)); // 科学计数法表示2. 静态方法
javascript
console.log(Number.isInteger(123)); // 检查是否为整数
console.log(Number.isFloat(123.45)); // 检查是否为浮点数(注意:ES6 后不存在此方法)
console.log(Number.isNaN(NaN)); // 检查是否为 NaN
console.log(Number.isFinite(123)); // 检查是否为有限数值
console.log(Number.parseFloat("123.45")); // 解析浮点数
console.log(Number.parseInt("123")); // 解析整数Number 对象的特殊值
NaN (Not a Number)
javascript
console.log(Number("abc")); // NaN
console.log(0 / 0); // NaN
console.log(NaN === NaN); // false,NaN 不等于自身
console.log(isNaN(NaN)); // true,使用 isNaN 函数检查Infinity (无穷大)
javascript
console.log(1 / 0); // Infinity
console.log(-1 / 0); // -Infinity
console.log(Infinity + 1); // Infinity
console.log(Infinity * 0); // NaN数值类型转换
隐式转换
javascript
console.log("5" - 3); // 2,字符串自动转换为数字
console.log("5" + 3); // '53',字符串拼接
console.log("5" * 3); // 15,字符串自动转换为数字
console.log("5" / 3); // 1.666...,字符串自动转换为数字显式转换
javascript
console.log(Number("123")); // 123
console.log(parseInt("123abc")); // 123
console.log(parseFloat("123.45abc")); // 123.45
console.log(+"123"); // 123最佳实践
使用字面量创建数字:直接使用数字字面量(如
let num = 123;)比使用new Number()更高效。注意数值精度:JavaScript 中的数字是基于 IEEE 754 标准的双精度浮点数,可能存在精度问题。
javascriptconsole.log(0.1 + 0.2); // 0.30000000000000004使用 Number.EPSILON 比较浮点数:
javascriptfunction areEqual(a, b) { return Math.abs(a - b) < Number.EPSILON; } console.log(areEqual(0.1 + 0.2, 0.3)); // true避免使用 NaN 进行比较:使用
isNaN()函数或Number.isNaN()方法来检查 NaN。使用 parseInt 时指定基数:
javascriptconsole.log(parseInt("010")); // 8(在某些环境中) console.log(parseInt("010", 10)); // 10(明确指定基数为10)注意数值范围:处理可能超出
Number.MAX_SAFE_INTEGER的大整数时,考虑使用 BigInt。
总结
Number 对象是 JavaScript 中处理数字的核心对象,它提供了丰富的属性和方法来操作数值。了解 Number 对象的特性和用法,有助于你更有效地处理 JavaScript 中的数值计算和转换。
通过合理使用 Number 对象的方法和遵循最佳实践,你可以避免常见的数值处理错误,编写更可靠的 JavaScript 代码。