Frontend/JavaScript

[JavaScript]ν•¨μˆ˜(Function)

sukii 2023. 12. 29. 14:33
λ°˜μ‘ν˜•

πŸ€”ν•¨μˆ˜(Function) : λ§€κ°œλ³€μˆ˜λ‘œ 값을 전달받아 가곡 μ²˜λ¦¬ν•˜μ—¬ 결과값을 λ°˜ν™˜ν•˜λŠ” κΈ°λŠ₯을 제곡

(μžλ°”λ‘œ 치면 λ©”μ†Œλ“œ 같은 κΈ°λŠ₯)
=> μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜κ³  ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ—¬ ν•¨μˆ˜μ— μž‘μ„±λœ λͺ…령을 μ‹€ν–‰ν•΄ 결과값을 λ°˜ν™˜λ°›μ•„ μ‚¬μš©
=> μžλ°”μŠ€νŠΈλ¦½νŠΈμ—μ„œλŠ” ν•¨μˆ˜ 선언방법에 따라 μ„ μ–Έν•¨μˆ˜μ™€ 읡λͺ…ν•¨μˆ˜λ‘œ ꡬ뢄
πŸ”˜μ„ μ–Έν•¨μˆ˜ : ν•¨μˆ˜λͺ…을 μž‘μ„±ν•˜μ—¬ μ„ μ–Έν•œ ν•¨μˆ˜
πŸ”˜μ΅λͺ…ν•¨μˆ˜ : ν•¨μˆ˜λͺ…을 μž‘μ„±ν•˜μ§€ μ•Šκ³  μ„ μ–Έν•œ ν•¨μˆ˜


μ‹€ν–‰κ²°κ³Όλ₯Ό 쀑간에 μ‚½μž…ν•˜λ©΄μ„œ 확인해보기 μœ„ν•΄μ„œ μ΄λ ‡κ²Œ μž‘μ„±ν•¨.

맨 μ•„λž˜μ— μ½”λ“œ 전체가 μ“°μ—¬μžˆλŠ” 블둝이 있음.

λ³Όλ“œ 처리 λ˜μ–΄ μžˆλŠ” 것듀이 μ„ μ–Έλ¬Έ λ˜λŠ” λͺ…λ Ήλ¬Έ!

//둜 μ‹œμž‘ν•˜λŠ” 것듀은 주석문!

 

//μ„ μ–Έν•¨μˆ˜ - ν•¨μˆ˜λͺ…(ν•¨μˆ˜λ₯Ό κ΅¬λΆ„ν•˜κΈ° μœ„ν•œ μ‹λ³„μž)을 μž‘μ„±ν•˜μ—¬ ν•¨μˆ˜ μ„ μ–Έ
//ν˜•μ‹) function ν•¨μˆ˜λͺ…(λ§€κ°œλ³€μˆ˜, λ§€κ°œλ³€μˆ˜, ...) { λͺ…λ Ή; λͺ…λ Ή; ... }
// => λ‚΄λΆ€μ μœΌλ‘œ ν•¨μˆ˜λͺ…을 λ³€μˆ˜μ²˜λŸΌ μ‚¬μš©ν•˜μ—¬ μ„ μ–Έν•¨μˆ˜λ₯Ό κ°’μœΌλ‘œ μ €μž₯
function display() {
alert("μ„ μ–Έν•¨μˆ˜μ˜ λͺ…λ Ή μ‹€ν–‰");
}

 

alert(display);//ν•¨μˆ˜λͺ…μœΌλ‘œ 좜λ ₯ 처리 - ν•¨μˆ˜λͺ…μœΌλ‘œ μ €μž₯된 μ„ μ–Έν•¨μˆ˜ 좜λ ₯

//μ•„λž˜μ™€ 같이 창이 λ‘λ²ˆ 싀행됨

alert(display) μ‹€ν–‰ κ²°κ³Ό
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(); μ‹€ν–‰ κ²°κ³Ό

 

 



//μ„ μ–Έν•¨μˆ˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ λͺ…λ Ή μ‹€ν–‰μ „에 μ„ μ–Έλ˜μ–΄ μƒμ„± - ν•¨μˆ˜ μž‘μ„± μ „에 ν•¨μˆ˜ ν˜ΈμΆœ κ°€λŠ₯
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>

 

λ°˜μ‘ν˜•