概要: このチュートリアルでは、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); // 41Code language: JavaScript (javascript)8進数リテラルに範囲外の数字が含まれている場合、JavaScriptは先頭の0を無視し、8進数リテラルを10進数として扱います。次の例を参照してください。
let b = 058; // invalid octal
console.log(b); // 58Code 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); // SyntaxErrorCode language: JavaScript (javascript)2進数リテラル
ES5では、JavaScriptは2進数のリテラル形式を提供していませんでした。2進数の文字列を解析するには、次のようにparseInt()関数を使用します。
let e = parseInt('111',2);
console.log(e); // 7Code language: JavaScript (javascript)ES6では、0b接頭辞の後に2進数(0と1)の並びを使用することで、2進数リテラルのサポートが追加されました。以下に例を示します。
let f = 0b111;
console.log(f); // 7Code language: JavaScript (javascript)まとめ
- 8進数リテラルは、
0oで始まり、その後に0から7までの数字の並びが続きます。 - 2進数リテラルは、
0bで始まり、その後に0と1の数字の並びが続きます。
このチュートリアルは役に立ちましたか?