SyntaxError: Восьмеричные литералы с префиксом "0" устарели
Исключение, специфичное для строгого режима JavaScript: "Восьмеричные литералы с префиксом "0" устарели; используйте префикс "0o"" возникает, когда используются устаревшие восьмеричные литералы (0, за которым следуют цифры).
Сообщение
SyntaxError: Octal literals are not allowed in strict mode. (V8-based) SyntaxError: Decimals with leading zeros are not allowed in strict mode. (V8-based) SyntaxError: Unexpected number (V8-based) SyntaxError: "0"-prefixed octal literals are deprecated; use the "0o" prefix instead (Firefox) SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode (Safari)
Тип ошибки
SyntaxError только в строгом режиме.
Что пошло не так?
Восьмеричные литералы устарели. Когда вы добавляете префикс 0 к десятичному целому числу, вы фактически превращаете его в восьмеричный литерал, что может вызвать недоумение. Стандартизированный синтаксис использует ведущий ноль, за которым следует латинская буква "O" в нижнем или верхнем регистре (0o или 0O).
Начальные нули всегда запрещены, даже если литерал не является допустимым синтаксисом восьмеричного литерала (например, когда литерал содержит цифры 8 или 9, или содержит десятичную точку). Числовой литерал может начинаться с 0 только в том случае, если этот 0 является разрядом единиц.
Примеры
Восьмеричные литералы с префиксом "0"
"use strict"; 03; // SyntaxError: "0"-prefixed octal literals are deprecated; use the "0o" prefix instead
Допустимые восьмеричные числа
Используйте ведущий ноль, за которым следует буква "o" или "O":
0o3;
Смотрите также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Deprecated_octal_literal