λ©μΈμ§
Syntax Error: Expected identifier (Edge) SyntaxError: function statement requires a name [Firefox] SyntaxError: Unexpected token ( [Chrome]
μλ¬ νμ
무μμ΄ μλͺ»λμμκΉ?
ν¨μ ꡬ문(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");
}
);