SyntaxError: return not in function

JavaScript 예외 "return (or yield) not in function"은 return 또는 yieldfunction 외부에서 호출될 때 발생합니다.

메시지

js
SyntaxError: 'return' statement outside of function (Edge)
  SyntaxError: return not in function (Firefox)
  SyntaxError: yield not in function (Firefox)

에러 타입

무엇이 잘못된 걸까요?

return 또는 yield 문장이 function 밖에서 호출되었기 때문입니다. 혹시 어딘가에 중괄호를 빠트리신 건 아닌가요? returnyield는 function 내에 있어야합니다. 왜냐하면 이것들은 function의 실행 종료 (또는 일시정지 및 재개)를 의미하고 function 호출자에게 특정 값을 반환하기 위해 사용되기 때문입니다.

예제

중괄호 누락

js
var cheer = function(score) {
  if (score === 147)
    return 'Maximum!';
  };
  if (score > 100) {
    return 'Century!';
  }
}

// SyntaxError: return not in function

처음 볼 때는 중괄호가 제대로 있는 것처럼 보인다, 하지만 이 코드 조각에는 if 문장 다음에 중괄호가 하나 빠져 있다. 다음처럼 고쳐야 한다:

js
var cheer = function (score) {
  if (score === 147) {
    return "Maximum!";
  }
  if (score > 100) {
    return "Century!";
  }
};

같이 보기