JavaScript Number研究03:实例方法——toExponential、toFixed、toPrecision、toString、valueOf、toLocaleString
在JavaScript中,Number
对象不仅包含了许多有用的静态属性,还提供了一系列实例方法,帮助我们在不同场景下处理和转换数值。这些方法包括:
toExponential()
toFixed()
toPrecision()
toString()
valueOf()
toLocaleString()
本篇文章将详细介绍这些实例方法的用法和注意事项,以便在开发中更灵活地操作数值。
toExponential()
定义
toExponential()
方法以指数表示法返回一个数值的字符串表示形式。可以指定小数点后的位数。
语法
numObj.toExponential([fractionDigits])
fractionDigits
:可选。指定小数点后保留的位数。取值范围为0到100之间的整数(某些浏览器可能支持更大的范围)。
用途
当需要以科学计数法表示数值,或需要规范化数值的位数时,可以使用toExponential()
方法。
示例
let num = 123456;
console.log(num.toExponential()); // "1.23456e+5"
console.log(num.toExponential(2)); // "1.23e+5"
console.log(num.toExponential(4)); // "1.2346e+5"
注意事项
- 如果不指定
fractionDigits
,则根据数值的精度自动决定小数位数。 fractionDigits
超出范围时可能会抛出RangeError
,具体取决于浏览器实现。
toFixed()
定义
toFixed()
方法按照指定的小数位数格式化数值,并以字符串形式返回。
语法
numObj.toFixed(digits)
digits
:可选。小数点后的位数,范围为0到100,默认为0(某些浏览器可能支持更大的范围)。
用途
用于将数值格式化为指定小数位数的字符串表示,常用于货币和精确度要求较高的数值展示。
示例
let num = 123.456;
console.log(num.toFixed()); // "123"
console.log(num.toFixed(2)); // "123.46"
console.log(num.toFixed(4)); // "123.4560"
注意事项
toFixed()
会进行四舍五入操作。- 超出范围的
digits
可能会抛出RangeError
,具体取决于浏览器实现。
toPrecision()
定义
toPrecision()
方法以指定的精度返回数值的字符串表示形式。
语法
numObj.toPrecision(precision)
precision
:可选。指定有效数字的位数,范围为1到100(某些浏览器可能支持更大的范围)。
用途
用于以固定的有效数字位数表示数值,适用于需要控制数值整体精度的场合。
示例
let num = 123.456;
console.log(num.toPrecision()); // "123.456"
console.log(num.toPrecision(2)); // "1.2e+2"
console.log(num.toPrecision(4)); // "123.5"
console.log(num.toPrecision(6)); // "123.456"
注意事项
- 当
precision
小于整数位数时,结果会使用指数表示法。 - 超出范围的
precision
可能会抛出RangeError
,具体取决于浏览器实现。
toString()
定义
toString()
方法返回指定数值的字符串表示形式,可以指定基数(进制)。
语法
numObj.toString([radix])
radix
:可选。指定转换为字符串时使用的进制,范围为2到36,默认值为10。
用途
将数值转换为字符串,特别是在需要以其他进制(如二进制、十六进制)表示数值时。
示例
let num = 255;
console.log(num.toString()); // "255"
console.log(num.toString(2)); // "11111111" // 二进制
console.log(num.toString(8)); // "377" // 八进制
console.log(num.toString(16)); // "ff" // 十六进制
注意事项
radix
超出范围会抛出RangeError
。- 对于
radix
大于10的情况,返回的字符串中可能包含字母。
valueOf()
定义
valueOf()
方法返回一个Number
对象的原始数值。
语法
numObj.valueOf()
用途
通常在内部被JavaScript引擎调用,将对象转换为原始数值。一般不需要手动调用。
示例
let numObj = new Number(123);
console.log(typeof numObj); // "object"
console.log(numObj.valueOf()); // 123
console.log(typeof numObj.valueOf()); // "number"
注意事项
- 对于
Number
对象,valueOf()
返回其原始数值。 - 在算术运算和比较中,会自动调用
valueOf()
。
toLocaleString()
定义
toLocaleString()
方法根据特定区域设置,将数值转换为当地格式的字符串表示。
语法
numObj.toLocaleString([locales[, options]])
locales
:可选。指定区域设置的语言代码,如"en-US"、“zh-CN”。options
:可选。用于定制格式化行为的配置对象。
用途
用于将数值按照特定语言和文化习惯格式化,适用于国际化应用。
示例
let num = 1234567.89;
console.log(num.toLocaleString()); // 根据运行环境的默认语言设置
console.log(num.toLocaleString('en-US')); // "1,234,567.89"
console.log(num.toLocaleString('de-DE')); // "1.234.567,89"
console.log(num.toLocaleString('zh-CN')); // "1,234,567.89"
// 使用options参数
let options = { style: 'currency', currency: 'USD' };
console.log(num.toLocaleString('en-US', options)); // "$1,234,567.89"
options = { style: 'currency', currency: 'CNY' };
console.log(num.toLocaleString('zh-CN', options)); // "¥1,234,567.89"
注意事项
toLocaleString()
依赖于运行环境的国际化支持。options
参数可以定制数值的格式,包括样式、货币、最小和最大有效位数等。
结论
toExponential()
:以指数形式表示数值,控制小数位数。toFixed()
:格式化数值为固定的小数位数,适合货币等场合。toPrecision()
:控制数值的总有效位数,适用于需要特定精度的情况。toString()
:将数值转换为字符串,支持不同的进制。valueOf()
:获取数值的原始值,通常在内部自动调用。toLocaleString()
:根据区域设置格式化数值,适用于国际化。
参考资料:
- MDN Web Docs - Number
- MDN Web Docs - Number.prototype.toExponential()
- MDN Web Docs - Number.prototype.toFixed()
- MDN Web Docs - Number.prototype.toPrecision()
- MDN Web Docs - Number.prototype.toString()
- MDN Web Docs - Number.prototype.valueOf()
- MDN Web Docs - Number.prototype.toLocaleString()
标签:03,toPrecision,console,log,toExponential,valueOf,数值,num,toLocaleString From: https://blog.csdn.net/qq_33546823/article/details/142746825