프로그래밍/Frontend
[오류해결] Uncaught SyntaxError: Function statements require a function name
알 수 없는 사용자
2021. 12. 3. 03:27
728x90
반응형
Uncaught SyntaxError: Function statements require a function name
위 오류는 오류 내용 그대로 함수 정의 코드에서 함수의 이름이 없어서 생겨나는 오류입니다.
만약 함수가 정의되어 있다면, 어떻게 정의되어 있는지, 혹시 이름이 없는 지, 아니면 오타가 난 건 아닌지
한번 확인해봐야 합니다.
일반적으로 아래와 같은 코드를 입력했을 때 오류가 발생합니다.
function () {
return "Domdom's World";
}
// Uncaught SyntaxError: Function statements require a function name
그 이유는 함수에 이름이 없기 때문이죠.
혹시 익명 함수(anonymous function)를 사용하려고 했다면 아래와 같이 작성해야 했습니다.
var domdom = function () {
return "Domdom's World";
};
아니면 만약에 정의되자마자 실행되는 함수를 정의하려고 하였다면,
아래와 같이 작성했어야 합니다.
(function () {
return "Domdom's World";
})();
그럼 다음과 같이 정상적으로 바로 실행되었을 겁니다.
거의 드문 경우겠지만,
혹시 아래와 같이 함수 안에 label을 정의해서 함수를 사용하셨을 때 오류가 난 거라면,
동일한 해결법으로 함수에 이름을 붙여주면 됩니다.
function Domdom() {
domdom: function () {
return "domdomi";
}
}
// Uncaught SyntaxError: function statement requires a name
function Domdom() {
domdom: function dom() {
return "domdomi";
}
}
// OK
사실 오타가 제일 문제입니다.
promise.then(
function() {
console.log("hello domdomi");
});
function() {
console.log("bye domdomi");
}
// Uncaught SyntaxError: function statement requires a name
이런 경우도 많을 것 같은데요. 위 코드를 보시면 }(세미콜론)을 제일 마지막에 붙였어야 하는데 중간에 붙여져서 생긴 오류인데, 세미콜론을 잘못닫아서 생긴 오류라고 나오지 않고, 오히려 함수에 이름이 없어서 생긴 오류가 발생했습니다.
이런 경우가 없는 지 잘 살펴봐야합니다..
위 코드를 정상적인 코드로 고친다면 아래와 같이 될 겁니다.
promise.then(
function() {
console.log("hello domdomi");
},
function() {
console.log("bye domdomi");
}
};
- 끝 -
728x90
반응형