Summary: in this tutorial, you will learn how to represent the octal and binary literals in ES6.
ES5 provided numeric literals in octal (prefix 0
), decimal (no prefix), and hexadecimal (0x
). ES6 added support for binary literals and changed how it represents octal literals.
Octal literals
To represent an octal literal in ES5, you use the zero prefix (0
) followed by a sequence of octal digits (from 0 to 7). For example:
let a = 051;
console.log(a); // 41
Code language: JavaScript (javascript)
If the octal literal contains a number that is out of range, JavaScript ignores the leading 0 and treats the octal literal as a decimal, as shown in the following example:
let b = 058; // invalid octal
console.log(b); // 58
Code language: JavaScript (javascript)
In this example, since 8
is an invalid digit for representing the octal number, JavaScript ignores the 0 and treats the whole number as a decimal with a value of 58.
Note you can use the octal literals in non-strict mode. If you use them in strict mode, JavaScript will throw an error.
"use strict"
let b = 058; // invalid octal
console.log(b);
Code language: JavaScript (javascript)
Here is the error message:
SyntaxError: Decimals with leading zeros are not allowed in strict mode.
Code language: JavaScript (javascript)
ES6 allows you to specify the octal literal by using the prefix 0o
followed by a sequence of octal digits from 0 through 7. Here is an example:
let c = 0o51;
console.log(c); // 41
Code language: JavaScript (javascript)
If you use an invalid number in the octal literal, JavaScript will throw a SyntaxError
as shown in the following example:
let d = 0o58;
console.log(d); // SyntaxError
Code language: JavaScript (javascript)
Binary literals
In ES5, JavaScript didn’t provide any literal form for binary numbers. To parse a binary string, you use the parseInt()
function as follows:
let e = parseInt('111',2);
console.log(e); // 7
Code language: JavaScript (javascript)
ES6 added support for binary literals by using the 0b
prefix followed by a sequence of binary numbers (0 and 1). Here is an example:
let f = 0b111;
console.log(f); // 7
Code language: JavaScript (javascript)
Summary
- Octal literals start with
0o
followed by a sequence of numbers between 0 and 7. - Binary literals start with
0b
followed by a sequence of numbers 0 and 1.