JavaScript Number 对象
JavaScript Number 对象是用来表示数字值的对象类型。虽然 JavaScript 中的数字(无论是整数还是浮点数)本质上是原始数据类型,但你可以通过 Number 对象来处理数字的相关方法和属性。
1. 创建 Number 对象
通常情况下,数字直接以字面量的形式进行操作,但你也可以使用 Number 构造函数创建一个 Number 对象。
const num1 = new Number(10); // 使用 Number 构造函数创建 Number 对象
console.log(num1); // 输出:Number { 10 }
const num2 = 10; // 直接使用数字字面量
console.log(num2); // 输出:10
2. Number 类型的属性和方法
Number 对象不仅是一个基本的数字类型,还提供了一些静态属性和实例方法来帮助你处理数字。
静态属性
Number.MAX_VALUE:表示 JavaScript 可以表示的最大正数。Number.MIN_VALUE:表示 JavaScript 可以表示的最小正数(大于零)。Number.NaN:表示 “Not-A-Number” 值。Number.POSITIVE_INFINITY:表示正无穷大。Number.NEGATIVE_INFINITY:表示负无穷大。Number.EPSILON:表示浮点数之间的最小差异。
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
console.log(Number.MIN_VALUE); // 5e-324
console.log(Number.NaN); // NaN
console.log(Number.POSITIVE_INFINITY); // Infinity
console.log(Number.NEGATIVE_INFINITY); // -Infinity
console.log(Number.EPSILON); // 2.220446049250313e-16
实例方法
toString([radix]):将数字转换为字符串,可以指定进制(默认为 10 进制)。toFixed(digits):将数字格式化为指定小数位数的字符串。toPrecision(precision):将数字格式化为指定精度的字符串。toExponential([digits]):将数字转换为指数形式。valueOf():返回Number对象的原始数值。
3. 示例
使用 toString() 方法
toString() 方法可以将一个数字转换成字符串,进而支持不同的进制表示。
const num = 255;
console.log(num.toString()); // "255" (默认 10 进制)
console.log(num.toString(2)); // "11111111" (2 进制)
console.log(num.toString(16)); // "ff" (16 进制)
console.log(num.toString(8)); // "377" (8 进制)
使用 toFixed() 方法
toFixed() 方法将数字格式化为指定的小数位数。它返回一个字符串。
const num1 = 123.456;
console.log(num1.toFixed(2)); // "123.46"(保留两位小数)
const num2 = 1.2345;
console.log(num2.toFixed(4)); // "1.2345"(保留四位小数)
注意:toFixed() 方法会进行四舍五入。
使用 toPrecision() 方法
toPrecision() 方法将数字格式化为指定的精度,返回一个字符串。
const num = 123.456;
console.log(num.toPrecision(4)); // "123.5"(保留 4 位有效数字)
console.log(num.toPrecision(6)); // "123.456"(保留 6 位有效数字)
使用 toExponential() 方法
toExponential() 方法将数字转换为指数形式的字符串。
const num = 123456;
console.log(num.toExponential()); // "1.23456e+5"
console.log(num.toExponential(2)); // "1.23e+5"(保留两位有效数字)
使用 valueOf() 方法
valueOf() 返回数字对象的原始值(即数值本身)。
const numObj = new Number(100);
console.log(numObj.valueOf()); // 100
4. 处理 NaN
NaN 是 JavaScript 中的一个特殊值,表示“非数值”或错误的数值结果。它并不等于任何值,包括它自己。
示例:NaN 判断
你可以通过 isNaN() 函数来判断一个值是否是 NaN。
console.log(isNaN("hello")); // true ("hello" 无法转换为数字)
console.log(isNaN(123)); // false (123 是一个数字)
console.log(isNaN(NaN)); // true (NaN 是 NaN)
5. Number 类型的转换
使用 Number() 函数进行类型转换
你可以通过 Number() 函数将字符串或其他类型转换为数字。
console.log(Number("123")); // 123
console.log(Number("123.45")); // 123.45
console.log(Number("hello")); // NaN
console.log(Number(true)); // 1
console.log(Number(false)); // 0
使用 parseInt() 和 parseFloat()
parseInt():将字符串解析为整数。parseFloat():将字符串解析为浮动点数。
console.log(parseInt("123")); // 123
console.log(parseInt("123.45")); // 123
console.log(parseFloat("123.45")); // 123.45
6. 实战案例:数字格式化
假设你正在开发一个电商平台,你需要将价格格式化为固定的小数点后两位并转换为字符串格式来展示。
function formatPrice(price) {
return price.toFixed(2);
}
console.log(formatPrice(10)); // "10.00"
console.log(formatPrice(10.5)); // "10.50"
console.log(formatPrice(123.456)); // "123.46"
总结
Number 对象在 JavaScript 中主要用于数值的转换、格式化和数学计算。通过它的一些方法,你可以方便地将数字转化为字符串,控制数字的小数位数,处理不同进制等。在日常开发中,理解并熟练运用这些方法对于数据处理非常重要。
更多详细内容请关注其他相关文章!