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

You’re reading the English version of this content since no translation exists yet for this locale. Help us translate this article!

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