๐Ÿ’ป FE/๐Ÿ“ JS

๋‹ค์–‘ํ•œ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ๊ตฌ๋ฌธ

Roy Miller 2025. 5. 13. 17:31

์ค‘์š”ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ. ์ด ๊ธ€์˜ ๋ ๋ถ€๋ถ„์— ์žˆ๋Š” "ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด๋งŒ ๋ฐ˜ํ™˜"ํ•˜๋Š” ํŠน์ˆ˜ ์‚ฌ๋ก€๋ฅผ ๋†“์น˜์ง€ ๋งˆ์„ธ์š”!

1) ๊ธฐ๋ณธ ๊ตฌ๋ฌธ:

const add = (a, b) => {
    const result = a + b;
    return result; // like in "normal" functions, parameters and return statement are OPTIONAL!
};

์ฃผ๋ชฉํ•˜์‹ค ๋งŒํ•œ ์‚ฌํ•ญ. ๋งˆ์ง€๋ง‰์˜ ์„ธ๋ฏธ์ฝœ๋ก , ํ•จ์ˆ˜ ํ‚ค์›Œ๋“œ ์—†์Œ, ๋งค๊ฐœ๋ณ€์ˆ˜/์ธ์ˆ˜์˜ ๊ด„ํ˜ธ.

2) ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›๋Š” ๊ฒฝ์šฐ ๋” ์งง์€ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ตฌ๋ฌธ.

const log = message => {
    console.log(message); // could also return something of course - this example just doesn't
};

์ฃผ๋ชฉํ•˜์‹ค ๋งŒํ•œ ์‚ฌํ•ญ. ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก์˜ ๊ด„ํ˜ธ๋Š” ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ์ธ์ˆ˜์— ๋Œ€ํ•ด).

3) ์ธ์ˆ˜๋ฅผ ๋ฐ›์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋นˆ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ด„ํ˜ธ.

const greet = () => {
    console.log('Hi there!');
};

์ฃผ๋ชฉํ•˜์‹ค ๋งŒํ•œ ์‚ฌํ•ญ. ๊ด„ํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ƒ๋žตํ•  ์ˆ˜ ์—†์Œ)

4) ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ํ‘œํ˜„์‹์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๋” ์งง์€ ํ•จ์ˆ˜ ๋ณธ๋ฌธ.

const add = (a, b) => a + b;

์ฃผ๋ชฉํ•˜์‹ค ๋งŒํ•œ ์‚ฌํ•ญ. ์ค‘๊ด„ํ˜ธ ๋ฐ return ๋ฌธ ์ƒ๋žต ๊ฐ€๋Šฅ, ํ‘œํ˜„์‹ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ์ž๋™ ๋ฐ˜ํ™˜

5) ํ•จ์ˆ˜๊ฐ€ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค(4)์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ๊ตฌ๋ฌธ์ด ๋‹จ์ถ•๋จ).

const loadPerson = pName => ({name: pName });

์ฃผ๋ชฉํ•˜์‹ค ๋งŒํ•œ ์‚ฌํ•ญ. ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๊ด„ํ˜ธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ค‘๊ด„ํ˜ธ๋Š” ํ•จ์ˆ˜ ๋ณธ๋ฌธ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ธฐํ˜ธ๋กœ ํ•ด์„๋˜๋ฏ€๋กœ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ ์˜ˆ์‹œ๋Š” ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต JavaScript์—์„œ ์ค‘๊ด„ํ˜ธ๋Š” ํ•ญ์ƒ ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const person = { name: 'Max' }; // ์ด ์ค‘๊ด„ํ˜ธ๋Š” ๊ฐ์ฒด ์ƒ์„ฑ์— ์“ฐ์ž„
if (something) { ... } // ์ค‘๊ด„ํ˜ธ๋กœ if ๋ฌธ ๋ธ”๋ก์„ ํ‘œ๊ธฐํ•จ

๊ทธ๋Ÿฌ๋‚˜ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์ค‘๊ด„ํ˜ธ๋Š” ๋‘ ๊ฐ€์ง€ ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1) ํ•จ์ˆ˜ ๋ณธ๋ฌธ ํ‘œ์‹œ(๊ธฐ๋ณธ ํ˜•์‹์—์„œ)

2) ๋ฐ˜ํ™˜ํ•˜๋ ค๋Š” ๊ฐ์ฒด ์ƒ์„ฑ(์งง์€ ํ•จ์ˆ˜ ๋ณธ๋ฌธ ํ˜•์‹์œผ๋กœ)

JavaScript์— ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ์ž‘์—…์„ "์•Œ๋ฆฌ๋ ค๋ฉด" ์œ„์— ํ‘œ์‹œ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ํ‘œํ˜„์‹(์˜ˆ: ๊ฐ์ฒด ์ƒ์„ฑ)์„ ๊ด„ํ˜ธ๋กœ ๋ฌถ์œผ์„ธ์š”.