SyntaxError: "0"-prefixed octal literals and octal escape seq. are deprecated

The JavaScript strict mode-only exception "0-prefixed octal literals and octal escape sequences are deprecated; for octal literals use the "0o" prefix instead" occurs when deprecated octal literals and octal escape sequences are used.

Message

SyntaxError: Octal numeric literals and escape characters not allowed in strict mode (Edge)
SyntaxError:
"0"-prefixed octal literals and octal escape sequences are deprecated;
for octal literals use the "0o" prefix instead

Error type

SyntaxError in strict mode only.

What went wrong?

Octal literals and octal escape sequences are deprecated and will throw a SyntaxError in strict mode. With ECMAScript 2015 and later, the standardized syntax uses a leading zero followed by a lowercase or uppercase Latin letter "O" (0o or 0O).

Examples

"0"-prefixed octal literals

"use strict";

03;

// SyntaxError: "0"-prefixed octal literals and octal escape sequences
// are deprecated

Octal escape sequences

"use strict";

"\251";

// SyntaxError: "0"-prefixed octal literals and octal escape sequences
// are deprecated

Valid octal numbers

Use a leading zero followed by the letter "o" or "O":

0o3;

For octal escape sequences, you can use hexadecimal escape sequences instead:

'\xA9';

See also