SyntaxError: идентификатор начинается сразу после числового литерала
Исключение JavaScript "идентификатор начинается сразу после числового литерала" возникает, когда идентификатор начинается с цифры. Идентификаторы могут начинаться только с буквы, подчеркивания (_) или знака доллара ($).
Сообщение
SyntaxError: Invalid or unexpected token (V8-based) SyntaxError: identifier starts immediately after numeric literal (Firefox) SyntaxError: No identifiers allowed directly after numeric literal (Safari)
Тип ошибки
Что пошло не так?
Имена переменных, называемые идентификаторами, соответствуют определенным правилам, которых должен придерживаться ваш код!
Идентификатор JavaScript должен начинаться с буквы, подчеркивания (_) или знака доллара ($). Они не могут начинаться с цифры! Только последующие символы могут быть цифрами (0-9).
Примеры
Имена переменных, начинающиеся с числовых литералов
Имена переменных не могут начинаться с чисел в JavaScript. Следующее не работает:
const 1life = "foo"; // SyntaxError: identifier starts immediately after numeric literal const foo = 1life; // SyntaxError: identifier starts immediately after numeric literal
Вам нужно будет переименовать переменную, чтобы избежать ведущей цифры.
const life1 = "foo"; const foo = life1;
В JavaScript существует синтаксическая особенность при вызове свойств или методов у чисел. Если вы хотите вызвать метод у целого числа, вы не можете сразу использовать точку после числа, потому что точка интерпретируется как начало десятичной дроби, из-за чего парсер видит имя метода как идентификатор сразу после числового литерала. Чтобы избежать этого, вам нужно либо заключить число в скобки, либо использовать двойную точку, где первая точка является десятичной точкой для числового литерала, а вторая точка — аксессором свойства.
alert(typeof 1.toString()) // SyntaxError: identifier starts immediately after numeric literal
Корректные способы вызова методов у чисел:
// Wrap the number in parentheses alert(typeof (1).toString()); // Add an extra dot for the number literal alert(typeof 2..toString()); // Use square brackets alert(typeof 3["toString"]());
См. также
© 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/Identifier_after_number