SyntaxError: "x" is not a legal ECMA-262 octal constant

Message

Warning: SyntaxError: 08 is not a legal ECMA-262 octal constant.
Warning: SyntaxError: 09 is not a legal ECMA-262 octal constant.

Type d'erreur

Un avertissement, l'exécution du script JavaScript ne sera pas interrompue.

Quel est le problĂšme ?

Les littĂ©raux de nombres dĂ©cimaux peuvent dĂ©marrer par un zĂ©ro suivi d'un autre chiffre. Si tous les chiffres aprĂšs le 0 de tĂȘte sont infĂ©rieurs Ă  8, le nombre est interprĂ©tĂ© comme un nombre en notation octale. Or, cela ne peut pas ĂȘtre le cas avec 08 et 09 et JavaScript produit un avertissement.

Les littéraux en notation octale et les séquences d'échappement octales sont désormais dépréciées (il y a aura donc un avertissement complémentaire sur la dépréciation de ces notations). Avec ECMAScript 6 et les versions ultérieures, la syntaxe utilise un zéro initial, suivi de la lettre latine « o » en majuscule ou en minuscule ((0o ou 0O). Pour plus d'informations à ce sujet, voir la page sur la grammaire lexicale JavaScript.

Exemples

Nombres invalides en notation octale

08;
09;
// SyntaxError: 08 is not a legal ECMA-262 octal constant
// SyntaxError: "0"-prefixed octal literals and octal escape sequences are deprecated

Nombres valides en notation octale

On utilisera un zéro suivi de la lettre « o » pour indiquer un nombre exprimé en notation octale :

0O755;
0o644;

Voir aussi