Spec-Zone.ru › JavaScript

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API