SyntaxError: function statement requires a name
ë©ì¸ì§
Syntax Error: Expected identifier (Edge)
SyntaxError: function statement requires a name [Firefox]
SyntaxError: Unexpected token ( [Chrome]
ìë¬ íì
SyntaxError
무ìì´ ì못ëììê¹?
í¨ì 구문(Function statement)ì ì´ë¦ì´ íìì ëë¤. í¨ìê° ì ìë ë°©ë²ì ë°ë¼ í¨ìì ì´ë¦ì ì§ê±°ë í¨ì ííì(Function expression) IIFEì¼ë¡ ìì±íê±°ë, í¨ìê° ë§¥ë½ì ë§ê² ì ëë¡ ìì±ëìëì§ íì¸í´ì¼ í©ëë¤.
ìì
>구문 vs ííì
í¨ì 구문(ëë í¨ì ì ì¸)ì ì´ë¦ì´ íìíë¯ë¡ ìë ìì ë ëìíì§ ììµëë¤:
function () {
return 'Hello world';
}
// SyntaxError: function statement requires a name
ëì í¨ì ííìì ì¬ì©í ì ììµëë¤:
var greet = function () {
return "Hello world";
};
ëë, ì ì¸íìë§ì ë°ë¡ ì¤íëë IIFE (Immediately Invoked Function Expression)를 ì¬ì©í ì ììµëë¤. ì´ ê²½ì° ëª ê°ì ê´í¸ê° ë íìí©ëë¤:
(function () {})();
ë ì´ë¸ì ë¶ì¸ í¨ì
ë§ì½ í¨ì ë ì´ë¸ì ì¬ì©íë ê²½ì° function í¤ìë ë¤ì í¨ì ì´ë¦ì´ íìíë¯ë¡ ìë ìì ë ëìíì§ ììµëë¤:
function Greeter() {
german: function () {
return "Moin";
}
}
// SyntaxError: function statement requires a name
ìë ìì ë ëìí©ëë¤:
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");
}
);