HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
View in English Always switch to English
SyntaxError: ожидаемый идентификатор (Edge) SyntaxError: оператор функции требует имя [Firefox] SyntaxError: непредвиденный токен ( [Chrome]
SyntaxError
В коде есть оператор function, для которого требуется имя. Вам нужно будет проверить, как определены функции и нужно ли предоставить для них имя, или если рассматриваемая функция должна быть выражением функции, IIFE, или если код функции вообще правильно размещён в этом контексте.
Оператор функции (или объявление функции) требует имя, это не будет работать:
function () { return 'Hello world'; } // SyntaxError: function statement requires a name
Вы можете использовать выражение функции (назначат) вместо:
var greet = function () { return "Hello world"; };
Или, ваша функция возможно, предназначена для IIFE (немедленно вызываемое выражение функции), которое является функцией, которая запускается, как только она определена. В этом случае вам понадобится ещё несколько брекетов:
(function () {})();
При использовании меток функций после ключевого слова function всё равно потребуется указать имя функции. Это не работает:
function Greeter() { german: function () { return "Moin"; } } // SyntaxError: оператор функции требует имя
Это будет работать, например так:
function Greeter() { german: function g() { return "Moin"; } }
Если вы намеревались создать метод объекта, вам нужно будет создать объект. Тогда допустим следующий синтаксис без имени после ключевого слова function.
var greeter = { german: function () { return "Moin"; }, };
Кроме того, внимательно следите за синтаксисом при использовании колбэков. Очень легко забыть скобку или запятую.
promise.then( function() { console.log("success"); }); function() { console.log("error"); } // SyntaxError: function statement requires a name
как бы было правильно:
promise.then( function() { console.log("success"); }, function() { console.log("error"); } );