Message
Warning: SyntaxError: 08 is not a legal ECMA-262 octal constant. Warning: SyntaxError: 09 is not a legal ECMA-262 octal constant.
Error type
SyntaxError
warning in strict mode only.
What went wrong?
Decimal literals can start with a zero (0
) followed by another decimal digit, but If all digits after the leading 0
are smaller than 8, the number is interpreted as an octal number. Because this is not the case with 08
and 09
, JavaScript warns about it.
Note that octal literals and octal escape sequences are deprecated and will present an additional deprecation warning. With ECMAScript 6 and later, the syntax uses a leading zero followed by a lowercase or uppercase Latin letter "O" (0o
or 0O)
. See the page about lexical grammar for more information.
Examples
Invalid octal numbers
08; 09; // SyntaxError: 08 is not a legal ECMA-262 octal constant // SyntaxError: octal literals and octal escape sequences are deprecated
Valid octal numbers
Use a leading zero followed by the letter "o";
0O755; 0o644;