Object.prototype.toLocaleString()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
toLocaleString()
は Object
インスタンスのメソッドで、オブジェクトを表す文字列を返します。このメソッドは、ロケール固有の目的のために派生オブジェクトによってオーバーライドするためのものです。
試してみましょう
構文
toLocaleString()
引数
なし。ただし、このメソッドをオーバーライドするすべてのオブジェクトは、 Date.prototype.toLocaleString
のように locales
と options
に対応する最大 2 つの引数を受け取ることが期待されます。これらの引数の位置は、他の目的には使用しないでください。
返値
this.toString()
呼び出しの返値です。
解説
Object.prototype
継承するすべてのオブジェクト(つまり、 null
プロトタイプオブジェクトを除くすべてのオブジェクト)は、 toLocaleString()
メソッドを継承します。 Object
's toLocaleString
は、 this.toString()
を呼び出した結果を返します。
この関数は、オブジェクトに汎用的な toLocaleString
メソッドを提供するために用意されています。コア言語では、これらの組み込みオブジェクトは toLocaleString
をオーバーライドしてロケール特有の書式設定を行います。
例
基底の toLocaleString() メソッドの使用
基底の toLocaleString()
メソッドは、単純に toString()
を呼び出します。
const obj = {
toString() {
return "My Object";
},
};
console.log(obj.toLocaleString()); // "My Object"
Array における toLocaleString() のオーバーライド
Array.prototype.toLocaleString()
は、各要素の toLocaleString()
メソッドを呼び出して、結果をロケール特有の区切り文字で連結することで、配列の値を文字列として出力するために使用されます。例を示します。
const testArray = [4, 7, 10];
const euroPrices = testArray.toLocaleString("fr", {
style: "currency",
currency: "EUR",
});
// "4,00 €,7,00 €,10,00 €"
Date における toLocaleString() の上書き
Date.prototype.toLocaleString()
は、特定のロケールに適した日付表示を出力するために使用されます。例を示します。
const testDate = new Date();
// "Date Fri May 29 2020 18:04:24 GMT+0100 (イギリス夏時間)"
const deDate = testDate.toLocaleString("de");
// "29.5.2020, 18:04:24"
const frDate = testDate.toLocaleString("fr");
// "29/05/2020, 18:04:24"
Number における toLocaleString() の上書き
Number.prototype.toLocaleString()
は、特定のロケールに適した数値表示を出力するために使用されます。例を示します。
const testNumber = 2901234564;
// "2901234564"
const deNumber = testNumber.toLocaleString("de");
// "2.901.234.564"
const frNumber = testNumber.toLocaleString("fr");
// "2 901 234 564"
仕様書
Specification |
---|
ECMAScript Language Specification # sec-object.prototype.tolocalestring |
ブラウザーの互換性
BCD tables only load in the browser