其他分享
首页 > 其他分享> > JS 中 `toLocaleString`妙用

JS 中 `toLocaleString`妙用

作者:互联网

缘起

kaven老师分享了一个数值取整的方法,即利用按位非操作符(~)进行取整:

var a = 1.5;
console.log(~~a); // 1

但是这种方法有点限制就是它只能进行向下取整,无法实现四舍五入。

所以就想到了toLocaleString() 方法,利用它可以巧妙第实现数值的四舍五入取整。

利用toLocaleString取整

我们直接上代码:

var a = 1.5;
console.log(a.toLocaleString('zh', {maximumFractionDigits: '0', useGrouping: false})); // 2

妙不可言啊。

当然,我们还是要了解其中原理。

toLocaleString API

语法:

object.toLocaleString(locale, options);

这个方法返回对象的字符串表示,该字符串反映对象所在的本地化执行环境。(即不同执行环境结果可能不同-比如浏览器和node就会不同)

参数:

数字处理

基本格式

numObject.toLocaleString(locale, {
  style: '',
  numberingSystem: '',
  unit: '',
  unitDisplay:'',
  currency:'',
  currencyDisplay:'',
  useGrouping: true,
  minimumIntegerDigits:'',
  minimumFractionDigits:'',
  maximumFractionDigits:'',
  minimumSignificantDigits:'',
  maximumSignificantDigits:'',
  notation:'',
  compactDisplay:''
})

选项说明

在这里插入图片描述
image-20201111114953570

image-20201111115005963

在这里插入图片描述

注意,数字通过·toLocaleString处理后返回的是一个字符串,如果需要数字格式,可以使用加号操作符(+)将它转为数字。

日期处理

基本格式

dateObj.tolocaleString(locale, {
	hour12: true,
  year: '',
  month: '',
  day: '',
  hour: '',
  minute: '',
  second: '',
  weekday: '',
  timeZoneName:'',
  era: '',
  timeZone: '',
});

选项说明:

格式有以下几个可选值:

以下是一些例子:

在这里插入图片描述

注意:年月日时分秒星期必须同时设置才能显示完整信息,否则,设置某项就只显示那一项

数组处理

如果数组元素由多种不同类型的值组成,当我们需要它们的字符串格式拼接在一起时,可以使用数组的toLocaleString()方法,它将执行如下操作:

  1. 对数组中每一个元素调用它们自身的toLocaleString()方法,得到转换后的字符串
  2. 使用逗号将得到的所有字符串连接起来返回

示例:

var arr = [1, new Date(), {a:1,b:2}];
var localeString = arr.toLocaleString('zh',{ style:'currency', currency:'CNY', year: 'numeric',  month: 'numeric',  day: 'numeric',  hour: 'numeric',  minute: 'numeric',  second: 'numeric', weekday:'short'});

在这里插入图片描述

标签:妙用,显示,toLocaleString,数字,默认,JS,numeric,格式
来源: https://blog.csdn.net/hjb2722404/article/details/110915893