相信大部分初级前端得 toLocaleString 方法使用场景是,将 Date 对象 转成字符串形式。
const date = new Date()
console.log(date.toLocaleString()) // 2022/1/5 下午4:05:19
除了这种用法之外,toLocaleString 还有很多种用法其中有不少用法可以满足一些常见得业务需求。
哪些类中包含这个API
Array.prototype.toLocaleString([locales[,options]])
Number.prototype.toLocaleString([locales[,options]])
Date.prototype.toLocaleString([locales[,options]])
语法
toLocaleString([locales[,options]]);
参数
locales:可选,带有BCP 47语言标记的字符串或字符串数组,用来表示要转为目标语言的类型,具体参考这个 Intl
options:可选,配置属性对象。
-
style:数字展示样式
style字段值 说明 decimal 用于纯数字格式(默认) currency 用于货币格式 percent 用于百分比格式 unit 用于单位格式 -
currency:当 options.style为currency 时,options.currency 用来表示货币单位的类型
currency字段值 说明 USD 使用美元格式(默认) EUR 使用欧元格式 CNY 使用人民币格式
示例
// 1、将数字进行千分位切割展示
var num = 1331231
console.log(num.toLocaleString()) // 1,331,231
// 2、将数字转为货币样式
var number = 123456.789;
console.log(number.toLocaleString('zh', { style: 'currency', currency: 'EUR' })); //€123,456.79
console.log(number.toLocaleString('zh', { style: 'currency', currency: 'CNY' })); //¥123,456.79
console.log(number.toLocaleString('zh', { style: 'currency', currency: 'CNY',currencyDisplay:'code' })); //CNY 123,456.79
console.log(number.toLocaleString('zh', { style: 'currency', currency: 'CNY',currencyDisplay:'name' })); //123,456.79人民币
// 3、将数字转为百分比形式
var num1 = 0.12
var num2 = 2.45
console.log(num1.toLocaleString('zh',{style:'percent'})) // 12%
console.log(num2.toLocaleString('zh',{style:'percent'})) // 245%
// 4、将纯数字/字符串数组所有元素用逗号拼接起来
var numArray = [12,564,'55',5,'8']
console.log(numArray.toLocaleString('zh')) // 12,564,55,5,8
本文只着重展示一些日常需求可能会使用到的场景,更多用法大家可以去MDN官网 MDN官网-toLocaleString 去研究学习一下。