“1_000_000 === 1000000″がTRUEになる話 – JavaScript

最新のブラウザでは、

“1_000_000 === 1000000”

がTRUEになります。

これは”Numeric Separator”という数値内の区切り文字を許可する機能で、次期ECMAScriptで正式採用される可能性があるJavaScript仕様です。(https://github.com/tc39/proposal-numeric-separator)

区切り文字は”_”(アンダースコア)で表現します。

例えば「10億」という数値を表現したいときに、アンダースコアで数値を区切ることで数値の可読性をよくすることができます。

let a = 1000000000000;
let b = 1_000_000_000_000;
console.log(a===b); // TRUE

また”Numeric Separator”では、整数だけではなく様々な数値形式に対応しています。

// 小数
let dec = 1_000_000.220_720;
// 2進数
let bin = 0b1010_0001_1000_0101;
// 8進数
let oct = 0o1234_5670;
// 16進数
let hex = 0xA0_B0_C0;
// BigInt
let bint = 9_223_372_036_854_775_807n;

参考

https://github.com/tc39/proposal-numeric-separator

https://v8.dev/features/numeric-separators

https://qiita.com/uhyo/items/4586dbc347d6985b44ef

Related Posts