Spec-Zone.ru › JavaScript

SyntaxError: illegal character

Исключение JavaScript "illegal character" возникает, когда лексер считывает символ, который не является частью строкового литерала, и этот символ не может составлять допустимый токен в языке.

Сообщение

SyntaxError: Invalid or unexpected token (V8-based)
SyntaxError: illegal character U+201C (Firefox)
SyntaxError: Invalid character '\u201c' (Safari)

Тип ошибки

SyntaxError

Что пошло не так?

Присутствует недопустимый символ, который интерпретатор не понимает. Вам следует либо поместить его в строковый литерал, либо заменить другим символом. Используйте редактор, который поддерживает подсветку синтаксиса, и внимательно проверяйте свой код на несоответствия, такие как знак минус (-) против тире (–) или простые кавычки (") против нестандартных кавычек (“).

Примеры

Несогласованные символы

Некоторые символы выглядят похоже, но заставят парсер неверно интерпретировать ваш код. Известные примеры этого — кавычки, минус или точка с запятой (греческий вопросительный знак (U+37e) выглядит так же).

“This looks like a string”; // SyntaxError: illegal character
// “ and ” are not " but look like it

42 – 13; // SyntaxError: illegal character
// – (en-dash) is not - but looks like it

const foo = "bar"; // SyntaxError: illegal character
// <37e> is not ; but looks like it

Это должно работать:

"This is actually a string";
42 - 13;
const foo = "bar";

Некоторые редакторы и IDE уведомят вас или, по крайней мере, используют немного другую подсветку для него, но не все. Когда что-то подобное происходит с вашим кодом, и вы не можете найти источник проблемы, часто лучше всего просто удалить проблемную строку и набрать ее заново.

Забытые символы

Легко забыть символ тут или там.

const operators = ["+", "-", ×", "÷"];
// SyntaxError: illegal character U+00D7

Добавьте пропущенную кавычку для "×".

const operators = ["+", "-", "×", "÷"];

Скрытые символы

При копировании кода из внешних источников могут присутствовать недопустимые символы. Будьте внимательны!

const foo = "bar";​
// SyntaxError: illegal character

При проверке этого кода в редакторе, таком как VIM, вы можете увидеть, что на самом деле присутствует символ пробела нулевой ширины (ZWSP) (U+200B).

const foo = "bar";<200b>

Смотрите также

  • Лексическая грамматика

© 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/Illegal_character

Spec-Zone.ru

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