以後は特に指定のない限りJSはES6記法で書いていこうと思います。
Intlオブジェクトというものを知りました。
国際化表記における各種変換を取りまとめるそこそこ大規模なオブジェクトらしい。
Collator
DateTimeFormat
NumberFormat
の3つのサブオブジェクトを持つ模様。
それぞれインスタンス化して使用するっぽい。
(() => { let localeOption = { style: "currency", currency: "jpy" }; let locale = new Intl.NumberFormat("ja-JP", localeOption); console.log(locale.format(1234500)); // => ¥1,234,500 })();
便利。
第二引数のoptionにcurrencyDisplay
を指定すると表記方法が変わるっぽい。
currencyDisplay: "symbol"
がデフォルトで、他にcode
とname
があるらしい。
symbol
の場合の記号が半角とか全角とか、その辺は実装依存っぽい。
とか思ってたら
Number#toLocaleString
とか、他の代表的なオブジェクトにメソッドとして同等機能が提供されていた。
new
はオーバーヘッドも大きいし*1、特別な理由がない限りは基本こっちですね。
*1:実測はしていませんが