티스토리 뷰
프로그래밍/Frontend
[오류해결] Uncaught SyntaxError: Function statements require a function name
알 수 없는 사용자 2021. 12. 3. 03:27728x90
반응형
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
반응형
'프로그래밍 > Frontend' 카테고리의 다른 글
[Lazyload] 브라우저에서 레이지 로딩(lazyload)하는 방법 (0) | 2022.03.06 |
---|---|
[Handlebars] View Engine 으로서의 Handlebars 기본 사용법 (0) | 2022.02.12 |
[jquery] data-target으로 원하는 태그 컨트롤하기 (1) | 2021.11.10 |
[캐시방지] 웹 개발 시 CSS, JS, Image 캐시 방지하는 법 (0) | 2021.11.03 |
[javascript] dictionary key, value list로 가져오기 (0) | 2021.10.25 |
댓글