新8進数と2進数の数値リテラルが実装された
説明
従来の8進数数値リテラルはこうだった。
// 0(ゼロ) + 8進数 076 // 62 01234 // 668
このリテラルは10進数での頭0埋めと紛らわしい。
実際、 parseInt 関数に "076" 等の文字列を通したとき、8進数と解釈され期待と異なる結果になってしまう問題は、初心者がハマりやすい罠として有名だった。
現在のモダンブラウザはこれを10進数と解釈してくれるようになり、strict modeではこのリテラルの使用が禁止され、罠は無くなったのだが、今度は8進数が使いづらくなってしまっていた。
Node.jsなど、サーバーサイド環境ではパーミッションに8進数を扱うので、使えないと困ってしまうのだが、この度問題を解決する新しいリテラルが実装された。
新しい8進数数値リテラルはこう。
// 0(ゼロ) + O/o(オー) + 8進数 0o76 // 62 0o1234 // 668
それから2進数数値リテラルも導入された。
// 0(ゼロ) + B/b(ビー) + 2進数 0b1 // 1 0b10 // 2 0b100 // 4
これはビット演算用のマジックナンバーとして使える(?)