[JavaScript]ν¨μ(Function)
π€ν¨μ(Function) : λ§€κ°λ³μλ‘ κ°μ μ λ¬λ°μ κ°κ³΅ μ²λ¦¬νμ¬ κ²°κ³Όκ°μ λ°ννλ κΈ°λ₯μ μ 곡
(μλ°λ‘ μΉλ©΄ λ©μλ κ°μ κΈ°λ₯)
=> μλ°μ€ν¬λ¦½νΈμμλ ν¨μλ₯Ό μ μΈνκ³ ν¨μλ₯Ό νΈμΆνμ¬ ν¨μμ μμ±λ λͺ
λ Ήμ μ€νν΄ κ²°κ³Όκ°μ λ°νλ°μ μ¬μ©
=> μλ°μ€νΈλ¦½νΈμμλ ν¨μ μ μΈλ°©λ²μ λ°λΌ μ μΈν¨μμ μ΅λͺ
ν¨μλ‘ κ΅¬λΆ
πμ μΈν¨μ : ν¨μλͺ
μ μμ±νμ¬ μ μΈν ν¨μ
πμ΅λͺ
ν¨μ : ν¨μλͺ
μ μμ±νμ§ μκ³ μ μΈν ν¨μ
μ€νκ²°κ³Όλ₯Ό μ€κ°μ μ½μ νλ©΄μ νμΈν΄λ³΄κΈ° μν΄μ μ΄λ κ² μμ±ν¨.
맨 μλμ μ½λ μ μ²΄κ° μ°μ¬μλ λΈλ‘μ΄ μμ.
λ³Όλ μ²λ¦¬ λμ΄ μλ κ²λ€μ΄ μ μΈλ¬Έ λλ λͺ λ Ήλ¬Έ!
//λ‘ μμνλ κ²λ€μ μ£Όμλ¬Έ!
//μ μΈν¨μ - ν¨μλͺ
(ν¨μλ₯Ό ꡬλΆνκΈ° μν μλ³μ)μ μμ±νμ¬ ν¨μ μ μΈ
//νμ) function ν¨μλͺ
(λ§€κ°λ³μ, λ§€κ°λ³μ, ...) { λͺ
λ Ή; λͺ
λ Ή; ... }
// => λ΄λΆμ μΌλ‘ ν¨μλͺ
μ λ³μμ²λΌ μ¬μ©νμ¬ μ μΈν¨μλ₯Ό κ°μΌλ‘ μ μ₯
function display() {
alert("μ μΈν¨μμ λͺ
λ Ή μ€ν");
}
alert(display);//ν¨μλͺ μΌλ‘ μΆλ ₯ μ²λ¦¬ - ν¨μλͺ μΌλ‘ μ μ₯λ μ μΈν¨μ μΆλ ₯
//μλμ κ°μ΄ μ°½μ΄ λλ² μ€νλ¨
alert(typeof(display));
//typleofλ₯Ό μ΄μ©νλ©΄ μλ£νμ΄ 'function'μΈ κ²μ νμΈν μ μμ.
//μ μΈν¨μλ ν¨μλͺ
μ μ΄μ©νμ¬ ν¨μ νΈμΆ - ν¨μλ₯Ό λ°λ³΅μ μΌλ‘ νΈμΆ κ°λ₯
//νμ) ν¨μλͺ
(κ°, κ°, ...)
//λλ² νΈμΆνλ©΄ λλ² μ€ν λ¨
display();//ν¨μ νΈμΆ - ν¨μ λ΄λΆμ μμ±λ λͺ
λ Ή μ€ν
display();
//μ΅λͺ
ν¨μ - ν¨μλͺ
μ μμ±νμ§ μκ³ ν¨μ μ μΈ
// => μ΅λͺ
ν¨μλ ν¨μλ₯Ό μ μΈνμ¬ λ°λ‘ ν¨μλ₯Ό νΈμΆνμ¬ μ¬μ© - ν¨μλ₯Ό νλ²λ§ νΈμΆ κ°λ₯
//νμ) (function (λ§€κ°λ³μ, λ§€κ°λ³μ, ...) { λͺ
λ Ή; λͺ
λ Ή; ... })(κ°, κ°, ...)
(function() {
alert("μ΅λͺ
ν¨μμ λͺ
λ Ή μ€ν");
})();//ν¨μ μ μΈ λ° νΈμΆ
//μ΅λͺ
ν¨μλ₯Ό μ μΈνμ¬ λ³μμ μ μ₯ - ν¨μν λ³μ
// => μλ°μ€ν¬λ¦½νΈμμλ ν¨μλ₯Ό νλμ κ°μΌλ‘ μ²λ¦¬νλ―λ‘ λ³μμ μ μ₯ κ°λ₯
var display=function() {
alert("μ΅λͺ
ν¨μμ λͺ
λ Ή μ€ν");
}
alert(display); //ν¨μλ³μλ₯Ό μΆλ ₯ μ²λ¦¬ - λ³μμ μ μ₯λ μ΅λͺ
ν¨μ μΆλ ₯
//μλμ κ°μ΄ μ°½μ΄ λλ² μ€νλ¨
alert(typeof(display));//function
//typleofλ₯Ό μ΄μ©νλ©΄ μλ£νμ΄ 'function'μΈ κ²μ νμΈν μ μμ.
//ν¨μλ³μλ₯Ό μ¬μ©νμ¬ ν¨μλ³μμ μ μ₯λ ν¨μ νΈμΆ κ°λ₯
// => ν¨μλ³μλ ν¨μλͺ
κ³Ό λμΌν μν μ€ν - ν¨μλ³μλ₯Ό μ¬μ©νμ¬ ν¨μ λ°λ³΅ νΈμΆ κ°λ₯
//νμ) ν¨μλ³μ(κ°, κ°, ...)
display();
//μ μΈν¨μλ μλ°μ€ν¬λ¦½νΈ λͺ
λ Ή μ€νμ μ μ μΈλμ΄ μμ± - ν¨μ μμ± μ μ ν¨μ νΈμΆ κ°λ₯
display();//ν¨μ μμ± μ ν¨μ νΈμΆ κ°λ₯
function display() {
alert("μ μΈν¨μμ λͺ
λ Ή μ€ν");
}
display();//ν¨μ μμ± ν ν¨μ νΈμΆ κ°λ₯
//μ΅λͺ
ν¨μλ₯Ό μ μΈνλ©° λ³μμ μ μ₯νλ©΄ λͺ
λ ΉμΌλ‘ μ²λ¦¬λμ΄ ν¨μ μμ± μ νΈμΆ λΆκ°λ₯
//display();//ν¨μ μμ± μ ν¨μ νΈμΆ λΆκ°λ₯ - μλ¬ λ°μ
var display=function() {
alert("μ΅λͺ
ν¨μμ λͺ
λ Ή μ€ν");
}
display();//ν¨μ μμ± ν ν¨μ νΈμΆ κ°λ₯
//μ μΈν¨μλ₯Ό μ μΈνμ¬ λ³μμ μ μ₯ κ°λ₯νμ§λ§ ν¨μλͺ
μΌλ‘ ν¨μ νΈμΆ λΆκ°λ₯
// => ν¨μλ³μλ₯Ό μ¬μ©νμ¬ μ μΈν¨μ νΈμΆ κ°λ₯
var display=function println() {
alert("ν¨μ λ΄λΆμ λͺ
λ Ή μ€ν");
}
//println();//μλ¬ λ°μ
display();
//ES6μμλ λλ€ ννμμ μ΄μ©ν νμ΄νν¨μ μΆκ° => μ½λλ₯Ό κ°κ²°νκ² νννμ¬ κ°λ
μ± μ¦κ°
//νμ) (λ§€κ°λ³μ, λ§€κ°λ³μ, ...) => { λͺ
λ Ή; λͺ
λ Ή; ... }
// => λ³μμ νμ΄νν¨μλ₯Ό μ μ₯νμ¬ λ³μλͺ
μΌλ‘ ν¨μ νΈμΆ κ°λ₯
// => νμ΄νν¨μλ₯Ό μ μ₯νλ λ³μλ const ν€μλλ₯Ό μ¬μ©νμ¬ μμ±
//const display = () => { alert("νμ΄νν¨μμ λͺ λ Ή μ€ν") }
// => ν¨μ λ΄λΆμ μμ±λ λͺ λ Ήμ΄ νλμΈ κ²½μ° { } κΈ°νΈ μλ΅ κ°λ₯
const display = () => alert("νμ΄νν¨μμ λͺ
λ Ή μ€ν");
display();
</script>
</body>
</html>
μ 체 μ½λπ©π»β¬οΈ
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript</title>
</head>
<body>
<script type="text/javascript">
//μ μΈν¨μ - ν¨μλͺ
(ν¨μλ₯Ό ꡬλΆνκΈ° μν μλ³μ)μ μμ±νμ¬ ν¨μ μ μΈ
//νμ) function ν¨μλͺ
(λ§€κ°λ³μ, λ§€κ°λ³μ, ...) { λͺ
λ Ή; λͺ
λ Ή; ... }
// => λ΄λΆμ μΌλ‘ ν¨μλͺ
μ λ³μμ²λΌ μ¬μ©νμ¬ μ μΈν¨μλ₯Ό κ°μΌλ‘ μ μ₯
function display() {
alert("μ μΈν¨μμ λͺ
λ Ή μ€ν");
}
alert(display);//ν¨μλͺ
μΌλ‘ μΆλ ₯ μ²λ¦¬ - ν¨μλͺ
μΌλ‘ μ μ₯λ μ μΈν¨μ μΆλ ₯
alert(typeof(display));//function
//μ μΈν¨μλ ν¨μλͺ
μ μ΄μ©νμ¬ ν¨μ νΈμΆ - ν¨μλ₯Ό λ°λ³΅μ μΌλ‘ νΈμΆ κ°λ₯
//νμ) ν¨μλͺ
(κ°, κ°, ...)
//λλ² νΈμΆνλ©΄ λλ² μ€ν λ¨
display();//ν¨μ νΈμΆ - ν¨μ λ΄λΆμ μμ±λ λͺ
λ Ή μ€ν
display();
//μ΅λͺ
ν¨μ - ν¨μλͺ
μ μμ±νμ§ μκ³ ν¨μ μ μΈ
// => μ΅λͺ
ν¨μλ ν¨μλ₯Ό μ μΈνμ¬ λ°λ‘ ν¨μλ₯Ό νΈμΆνμ¬ μ¬μ© - ν¨μλ₯Ό νλ²λ§ νΈμΆ κ°λ₯
//νμ) (function (λ§€κ°λ³μ, λ§€κ°λ³μ, ...) { λͺ
λ Ή; λͺ
λ Ή; ... })(κ°, κ°, ...)
(function() {
alert("μ΅λͺ
ν¨μμ λͺ
λ Ή μ€ν");
})();//ν¨μ μ μΈ λ° νΈμΆ
//μ΅λͺ
ν¨μλ₯Ό μ μΈνμ¬ λ³μμ μ μ₯ - ν¨μν λ³μ
// => μλ°μ€ν¬λ¦½νΈμμλ ν¨μλ₯Ό νλμ κ°μΌλ‘ μ²λ¦¬νλ―λ‘ λ³μμ μ μ₯ κ°λ₯
var display=function() {
alert("μ΅λͺ
ν¨μμ λͺ
λ Ή μ€ν");
}
alert(display);//ν¨μλ³μλ₯Ό μΆλ ₯ μ²λ¦¬ - λ³μμ μ μ₯λ μ΅λͺ
ν¨μ μΆλ ₯
alert(typeof(display));//function
//ν¨μλ³μλ₯Ό μ¬μ©νμ¬ ν¨μλ³μμ μ μ₯λ ν¨μ νΈμΆ κ°λ₯
// => ν¨μλ³μλ ν¨μλͺ
κ³Ό λμΌν μν μ€ν - ν¨μλ³μλ₯Ό μ¬μ©νμ¬ ν¨μ λ°λ³΅ νΈμΆ κ°λ₯
//νμ) ν¨μλ³μ(κ°, κ°, ...)
display();
//μ μΈν¨μλ μλ°μ€ν¬λ¦½νΈ λͺ
λ Ή μ€νμ μ μ μΈλμ΄ μμ± - ν¨μ μμ± μ μ ν¨μ νΈμΆ κ°λ₯
display();//ν¨μ μμ± μ ν¨μ νΈμΆ κ°λ₯
function display() {
alert("μ μΈν¨μμ λͺ
λ Ή μ€ν");
}
display();//ν¨μ μμ± ν ν¨μ νΈμΆ κ°λ₯
//μ΅λͺ
ν¨μλ₯Ό μ μΈνλ©° λ³μμ μ μ₯νλ©΄ λͺ
λ ΉμΌλ‘ μ²λ¦¬λμ΄ ν¨μ μμ± μ νΈμΆ λΆκ°λ₯
display();//ν¨μ μμ± μ ν¨μ νΈμΆ λΆκ°λ₯ - μλ¬ λ°μ
var display=function() {
alert("μ΅λͺ
ν¨μμ λͺ
λ Ή μ€ν");
}
display();//ν¨μ μμ± ν ν¨μ νΈμΆ κ°λ₯
//μ μΈν¨μλ₯Ό μ μΈνμ¬ λ³μμ μ μ₯ κ°λ₯νμ§λ§ ν¨μλͺ
μΌλ‘ ν¨μ νΈμΆ λΆκ°λ₯
// => ν¨μλ³μλ₯Ό μ¬μ©νμ¬ μ μΈν¨μ νΈμΆ κ°λ₯
var display=function println() {
alert("ν¨μ λ΄λΆμ λͺ
λ Ή μ€ν");
}
println();//μλ¬ λ°μ
display();
//ES6μμλ λλ€ ννμμ μ΄μ©ν νμ΄νν¨μ μΆκ°
// => μ½λλ₯Ό κ°κ²°νκ² νννμ¬ κ°λ
μ± μ¦κ°
//νμ) (λ§€κ°λ³μ, λ§€κ°λ³μ, ...) => { λͺ
λ Ή; λͺ
λ Ή; ... }
// => λ³μμ νμ΄νν¨μλ₯Ό μ μ₯νμ¬ λ³μλͺ
μΌλ‘ ν¨μ νΈμΆ κ°λ₯
// => νμ΄νν¨μλ₯Ό μ μ₯νλ λ³μλ const ν€μλλ₯Ό μ¬μ©νμ¬ μμ±
// => ν¨μ λ΄λΆμ μμ±λ λͺ
λ Ήμ΄ νλμΈ κ²½μ° { } κΈ°νΈ μλ΅ κ°λ₯
const display = () => { alert("νμ΄νν¨μμ λͺ
λ Ή μ€ν") }
const display = () => alert("νμ΄νν¨μμ λͺ
λ Ή μ€ν");
display();
</script>
</body>
</html>