説明 従来の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