概要: このチュートリアルでは、ES6で8進数および2進数リテラルを表現する方法を学びます。
ES5では、8進数(接頭辞0
)、10進数(接頭辞なし)、および16進数(0x
)で数値リテラルを提供していました。ES6では、2進数リテラルのサポートが追加され、8進数リテラルの表現方法が変更されました。
8進数リテラル
ES5で8進数リテラルを表現するには、0の接頭辞(0
)の後に、8進数(0から7)の数字の並びを使用します。例:
let a = 051;
console.log(a); // 41
Code language: JavaScript (javascript)
8進数リテラルに範囲外の数字が含まれている場合、JavaScriptは先頭の0を無視し、8進数リテラルを10進数として扱います。次の例を参照してください。
let b = 058; // invalid octal
console.log(b); // 58
Code language: JavaScript (javascript)
この例では、8
が8進数を表現するための無効な数字であるため、JavaScriptは0を無視し、数値全体を値58の10進数として扱います。
非strictモードでは8進数リテラルを使用できます。strictモードで使用すると、JavaScriptはエラーをスローします。
"use strict"
let b = 058; // invalid octal
console.log(b);
Code language: JavaScript (javascript)
エラーメッセージは次のとおりです。
SyntaxError: Decimals with leading zeros are not allowed in strict mode.
Code language: JavaScript (javascript)
ES6では、接頭辞0o
の後に0から7までの8進数の並びを使用することで、8進数リテラルを指定できます。以下に例を示します。
let c = 0o51;
console.log(c); // 41
Code language: JavaScript (javascript)
8進数リテラルに無効な数字を使用すると、JavaScriptは次の例に示すようにSyntaxError
をスローします。
let d = 0o58;
console.log(d); // SyntaxError
Code language: JavaScript (javascript)
2進数リテラル
ES5では、JavaScriptは2進数のリテラル形式を提供していませんでした。2進数の文字列を解析するには、次のようにparseInt()
関数を使用します。
let e = parseInt('111',2);
console.log(e); // 7
Code language: JavaScript (javascript)
ES6では、0b
接頭辞の後に2進数(0と1)の並びを使用することで、2進数リテラルのサポートが追加されました。以下に例を示します。
let f = 0b111;
console.log(f); // 7
Code language: JavaScript (javascript)
まとめ
- 8進数リテラルは、
0o
で始まり、その後に0から7までの数字の並びが続きます。 - 2進数リテラルは、
0b
で始まり、その後に0と1の数字の並びが続きます。
このチュートリアルは役に立ちましたか?