toLocaleString
Object.prototype.toLocaleString()
方法返回一个该对象的字符串表示。
obj.toLocaleString() : Object
toLocaleString
返回调用 toString()
的结果。
a.toLocaleString() // "[object Object]"
a.toString() //"[object Object]"
该函数提供给对象一个通用的toLocaleString
方法,即使不是全部都可以使用它。 见下面的列表。
覆盖 toLocaleString
的对象
Array
:Array.prototype.toLocaleString()
Number
:Number.prototype.toLocaleString()
Date
:Date.prototype.toLocaleString()
Array.prototype.toLocaleString()
返回一个字符串表示数组中的元素。数组中的元素将使用各自的 toLocaleString
方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号 ",")隔开。
arr.toLocaleString(locales ,options)
总是在prices
数组中显示字符串和数字的货币符号
var prices = ['¥7', 500, 8123, 12];
prices.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' });
// "¥7,¥500,¥8,123,¥12"
Number.prototype.toLocaleString()
toLocaleString()
方法返回这个数字在特定语言环境下的表示字符串。
在没有指定区域的基本使用时,返回使用默认的语言环境和默认选项格式化的字符串
var number = 3500;
console.log(number.toLocaleString()); // "3,500"
语法参数
numObj.toLocaleString(locales , options)
locales
和 options
参数让应用程序可以指定要进行格式转换的语言,并且定制函数的行为。
locales : 可选。缩写语言代码。 例如 zh-u-nu-hanidec (表示中文十进制数字)
var number = 123456.789;
// 德国使用逗号作为小数分隔符,分位周期为千位
console.log(number.toLocaleString('de-DE'));
// → 123.456,789
options : 可选。
通过 toLocaleString
返回的结果可以通过 options
参数进行定制
var number = 123456.789;
// 要求货币格式 "USD" 表示美元, "EUR" 表示欧元, 或者 "CNY"是人民币
// 没有默认值,如果 style 是 “currency”,必须提 currency 属性.
console.log(number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
// → 123.456,79 €
// 日元不使用小数位
console.log(number.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
// → ¥123,457
// 限制三位有效数字
console.log(number.toLocaleString('en-IN', { maximumSignificantDigits: 3 }));
// → 1,23,000
使用的小数位数的最大数目,可能的值是从 0 到 20。但是如果不传如参数的话,纯数字格式默认是 3位小数。具体位数与 minimumfractiondigits ( 使用的小数位数的最小数目 ) 属性有关
var num = 123456.1234567
num.toLocaleString()
"123,456.123"
Date.prototype.toLocaleString()
dateObj.toLocaleString(locales ,options)
返回该日期对象的字符串,该字符串格式因不同语言而不同。根据当地语言规定返回代表着时间的字符串。
没有指定语言环境(locale)时,返回一个使用默认语言环境和格式设置(options)的格式化字符串。
var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
// toLocaleString 不包含参数的返回值取决于实现,
// 默认的区域(locale),和默认的时区(time zone)
date.toLocaleString();
// → 如果是在en-US区域和America/Los_Angeles时区运行返回值为"12/11/2012, 7:00:00 PM"
date.toLocaleString();
"2012/12/12 上午11:00:00" // 本地默认的区域与时区
locales : 为了在应用的用户界面得到某种语言的日期和时间格式,必须确保使用 locales
参数指定了该语言
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
//假定本地时区是 America/Los_Angeles(美国时区)
//en-US(美利坚英语)使用 month-day-year 的顺序展示年月日
alert(date.toLocaleString("en-US"));
// → "12/19/2012, 7:00:00 PM"
options :可以使用 options
参数来自定义 toLocaleString
方法返回的字符串。
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// 使用24小时制
alert(date.toLocaleString("en-US", {hour12: false}));
// → "12/19/2012, 19:00:00"
[‘1’,‘2’,‘3’].map(parseInt)返回结果是什么?
首先针对于 map 方法,MDN 是这么解释的
map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果
map方法内部必须是一个函数,否则报错,该函数可以接收三个参数:value,index,array,一般情况下 array 会默认省略
["1","2","3"].map((value,index,array) => {
return {"value":value , "index":index , "array":array}
})
[
{value:"1",index,0,array:["1","2","3"]},
{value:"2",index,1,array:["1","2","3"]},
{value:"3",index,2,array:["1","2","3"]}
]
parseInt函数
parseInt(string, radix) 将一个字符串 string 转换为 radix 进制的整数, radix
为介于2-36之间的数。
如果string参数不是一个字符串,则将其转换为字符串(使用 ToString
抽象操作)。字符串开头的空白符将会被忽略。
返回解析后的整数值。
如果被解析参数的第一个字符无法被转化成数值类型,则返回 NaN。
parseInt("Hello", 8); // 根本就不是数值
第一个非空格字符不能转换为数字,也返回NaN
parseInt("546", 2); // 除了“0、1”外,其它数字都不是有效二进制数字
[‘1’,‘2’,‘3’].map(parseInt)返回结果实际上就是
parseInt 这个函数在被调用的时候,默认的将 map 传递的 value 和 index 两个参数接收,使用 index 代表的规则,将 value 进行转化
parseInt("1", 0); // 1 默认转化为 10 进制数
parseInt("2", 1); // NaN 1不在 参数转化规则之内,
parseInt("3", 2); // NaN 第二个参数虽然在转化规则之内,但是3,不属于二进制基本数位,不能被转化