SyntaxError: return not in function
Сообщение
SyntaxError: 'return' statement outside of function (Edge) SyntaxError: return not in function (Firefox) SyntaxError: yield not in function (Firefox)
Тип ошибки
Что пошло не так?
Вызов оператора return
или yield
был осуществлён вне функции. Может, где-то пропущена фигурная скобка? Операторы return
и yield
не могут существовать вне функции, поскольку они завершают (или останавливают и возобновляют) её исполнение и указывают значение, возвращаемое в место, откуда она была вызвана.
Примеры
js
var cheer = function(score) {
if (score === 147)
return 'Максимум!';
};
if (score > 100) {
return 'Столетие!';
}
}
// SyntaxError: return not in function
На первый взгляд кажется, что фигурные скобки расставлены правильно, но в данном примере пропущена {
после первого оператора if
. Правильный вариант:
js
var cheer = function (score) {
if (score === 147) {
return "Максимум!";
}
if (score > 100) {
return "Столетие!";
}
};