SyntaxError: illegal character
Исключение JavaScript "illegal character" возникает, когда лексер считывает символ, который не является частью строкового литерала, и этот символ не может составлять допустимый токен в языке.
Сообщение
SyntaxError: Invalid or unexpected token (V8-based) SyntaxError: illegal character U+201C (Firefox) SyntaxError: Invalid character '\u201c' (Safari)
Тип ошибки
Что пошло не так?
Присутствует недопустимый символ, который интерпретатор не понимает. Вам следует либо поместить его в строковый литерал, либо заменить другим символом. Используйте редактор, который поддерживает подсветку синтаксиса, и внимательно проверяйте свой код на несоответствия, такие как знак минус (-) против тире (–) или простые кавычки (") против нестандартных кавычек (“).
Примеры
Несогласованные символы
Некоторые символы выглядят похоже, но заставят парсер неверно интерпретировать ваш код. Известные примеры этого — кавычки, минус или точка с запятой (греческий вопросительный знак (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