Warning: 08/09 is not a legal ECMA-262 octal constant
JavaScript の警告 "08 (or 09) is not a legal ECMA-262 octal constant" は、数値リテラルの
08
または 09
が使用されたときに発生します。これらは 8 進数として解釈することができません。
エラーメッセージ
Warning: SyntaxError: 08 is not a legal ECMA-262 octal constant.
Warning: SyntaxError: 09 is not a legal ECMA-262 octal constant.
エラーの種類
警告です。 JavaScript の実行は停止しません。
エラーの原因
10 進数リテラルは、ゼロ (0
) から始まり、その他の 10 進数の数字を続けることができますが、先頭の 0
の後の数字がすべて 8 より小さい場合、その数値は 8 進数として解釈されます。そのため、 08
や 09
はあり得ないため、 JavaScript はこれを警告します。
8 進数リテラルと 8 進エスケープシーケンスは非推奨であり、追加の非推奨警告が発生することに注意してください。 ECMAScript 6 以降では、ゼロで始まり小文字または大文字のラテン文字 "O" (0o
または 0O
) が続く構文が使用されます。詳細は、字句文法のページを見てください。
例
無効な 8 進数
08;
09;
// SyntaxError: 08 is not a legal ECMA-262 octal constant
// SyntaxError: "0"-prefixed octal literals and octal escape sequences
// are deprecated
有効な 8 進数
先頭のゼロに続き "o" の文字を使用します。
0O755;
0o644;