Function ์—ฐ์Šตํ€ด์ฆˆ 1

1. ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ ์ž‘์„ฑ
๋‘ ์ˆ˜๋ฅผ ๋”ํ•˜๋Š” add ํ•จ์ˆ˜๋ฅผ ์„ ์–ธ๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•˜์‹œ์˜ค.
// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”
function ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ) function ํ•จ์ˆ˜์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜) { ... }
2. ํ•จ์ˆ˜ ํ‘œํ˜„์‹ ์ž‘์„ฑ
๋‘ ์ˆ˜๋ฅผ ๊ณฑํ•˜๋Š” multiply ํ•จ์ˆ˜๋ฅผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์œผ๋กœ ์ž‘์„ฑํ•˜์‹œ์˜ค.
// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”
๋ณ€์ˆ˜์— ํ•จ์ˆ˜๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ) const ํ•จ์ˆ˜์ด๋ฆ„ = function(๋งค๊ฐœ๋ณ€์ˆ˜) { ... }
3. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ์ž‘์„ฑ
๋‘ ์ˆ˜๋ฅผ ๋นผ๋Š” subtract ํ•จ์ˆ˜๋ฅผ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ์ž‘์„ฑํ•˜์‹œ์˜ค.
// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”
(a, b) => a - b ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
4. ๊ธฐ๋ณธ๊ฐ’ ๋งค๊ฐœ๋ณ€์ˆ˜
๋งค๊ฐœ๋ณ€์ˆ˜ b์˜ ๊ธฐ๋ณธ๊ฐ’์ด 10์ธ add ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.
// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”
function add(a, b = 10) ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
5. return๋ฌธ ์‚ฌ์šฉ
๋ฌธ์ž์—ด์„ ๋ฐ›์•„ "Hello, ์ด๋ฆ„!"์„ ๋ฐ˜ํ™˜ํ•˜๋Š” greet ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.
// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”
return "Hello, " + name + "!" ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
6. ํ•จ์ˆ˜ ํ˜ธ์ถœ
sum ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ , 3๊ณผ 7์„ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•˜์—ฌ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.
// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”
sum(3, 7) ํ˜•ํƒœ๋กœ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
7. ์ต๋ช… ํ•จ์ˆ˜ ์‚ฌ์šฉ
setTimeout์„ ์‚ฌ์šฉํ•ด 1์ดˆ ํ›„ "Hello"๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.
// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”
setTimeout(function() { ... }, 1000) ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
8. ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ์‚ฌ์šฉ
ํ•จ์ˆ˜ printTwice๋ฅผ ์ •์˜ํ•˜๊ณ , ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ๋ฐ›์•„ 2๋ฒˆ ์‹คํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.
// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”
๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ•จ์ˆ˜๋ฅผ ๋ฐ›์•„ callback()์„ 2๋ฒˆ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
9. ํ•จ์ˆ˜์—์„œ ๋ฐฐ์—ด ๋ฐ˜ํ™˜
๋‘ ์ˆ˜๋ฅผ ๋ฐ›์•„ [a, b] ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” makeArray ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.
// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”
return [a, b] ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
10. ํ•จ์ˆ˜์—์„œ ๊ฐ์ฒด ๋ฐ˜ํ™˜
์ด๋ฆ„๊ณผ ๋‚˜์ด๋ฅผ ๋ฐ›์•„ ๊ฐ์ฒด {name, age}๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” makePerson ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.
// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”
return {name: name, age: age} ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.