ํจ์ (function)
์ง์์ฌํญ๋ค(์ฝ๋)์ ๋ฌถ์.
์ ๋ ฅ๊ฐ๊ณผ ์ถ๋ ฅ๊ฐ ์ฌ์ด์ ๊ด๊ณ๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
ํจ์์ ํน์ง์ผ๋ก ๋ฐ๋์ ๋ฌด์ธ๊ฐ๋ฅผ ์ถ๋ ฅ(return)ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ถ๋ ฅ๊ฐ์ด ์๋๋ผ๋ undefined๋ฅผ return ํฉ๋๋ค.
1. ์ ์ธ (declaration)
์ ์ธ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ ์ธ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ์ ์ธ์ ์ํด์๋ keyword, name, parameter, body๊ฐ ํ์ํฉ๋๋ค.
- ํจ์ ์ ์ธ์
function getRectangleArea(width,height) { let rectangleArea=(width*height); return rectangleArea }โ
- ํจ์ ํํ์
let getRectangleArea=function(width,height) { let rectangleArea=(width*height); return rectangleArea }โ
- ํ์ดํ ํจ์
const getRectangleArea=(width,height) => { let rectangleArea=width*height; return rectangleArea; }โ
ํ์ดํ ํจ์๋ ํจ์ ํํ์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ ธ์ '๋ณ์ ์ ์ธ ํ ์ต๋ช ํจ์๋ฅผ ํ ๋น'ํฉ๋๋ค. ์ด๋ function์ ์ฐ๋ ๋์ '=>'๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ง์ฝ ํจ์์ ๋ณธ๋ฌธ(body)์ return๋ฌธ๋ง ์์ผ๋ฉด, return๊ณผ {} ์ค๊ดํธ๋ฅผ ์๋ตํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ง์ฝ ํจ์ ๋ด์ ํํ์์ด 2์ค ์ด์์ธ ๊ฒฝ์ฐ, ์๋ต ์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ฏ๋ก return๊ณผ ์ค๊ดํธ๋ฅผ ์จ์ฃผ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค.let getRectangleArea = (width, height) => width * heightโ
return๋ฌธ์์ () ์๊ดํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํจ์ ์ ์ธ์๊ณผ ํจ์ ํํ์์ ์ฐจ์ด์ ์ผ๋ก๋ ํธ์ด์คํ (hoisting)๊ณผ ์ธ๋ฏธ์ฝ๋ก (;)์ด ์์ต๋๋ค.
์ฌ๊ธฐ์ ํธ์ด์คํ ์ ๊ฐ๋จํ๊ฒ ๋์ด์ฌ๋ฆฌ๊ธฐ๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ ์์์๋ถํฐ ์๋๋ก ์ฝ๋๋ฅผ ์คํํ๋๋ฐ ํธ์ด์คํ ์ ํตํด ๋ฐ์ ์๋ ์ฝ๋๋ฅผ ๋จผ์ ์คํ์ํฌ ์ ์์ต๋๋ค.
ํจ์ ์ ์ธ์์ ํธ์ด์คํ ์ด ๋์ง๋ง, ํจ์ ํํ์์ ํธ์ด์คํ ์ด ๋์ง ์์ต๋๋ค.
ํจ์๋ฅผ ์ ์ธํ ๋
ํจ์ ์ ์ธ์์ ์ธ๋ฏธ์ฝ๋ก (;) ์ ์ฌ์ฉํ์ง ์์ง๋ง, ํจ์ ํํ์์ ์ฌ์ฉํฉ๋๋ค.
์ฐธ์กฐ)
์ธ๋ฏธ์ฝ๋ก ์ ์ญํ
https://ko.javascript.info/function-expressions
ํจ์ ํํ์๊ณผ ํ์ดํ ํจ์์ ์ฐจ์ด์
https://walkinpcm.blogspot.com/2019/11/javascript-arrow-function.html
2. ํธ์ถ (call, invocation)
์ ์ธ์ ํ ๋ ๋งค๊ฐ๋ณ์(parameter)๋ฅผ ์ด์ฉํฉ๋๋ค. ๋งค๊ฐ๋ณ์๋ ์ ๋ ฅ์ ์ด๋ป๊ฒ ํ๋๋์ ๋ฐ๋ผ ๋ฐ๋ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ์ ์ธ๋ ํจ์๋ฅผ ํธ์ถํ ๋ ์ ๋ฌ์ธ์(argument)๋ฅผ ์ด์ฉํฉ๋๋ค.
'TIL > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TIL 3 : ๋ฌธ์์ด (JavaScript) (0) | 2021.07.21 |
---|---|
TIL 2 (4) : ์กฐ๊ฑด๋ฌธ (JavaScript) (0) | 2021.07.20 |
TIL 2 (2) : ํ์ (JavaScript) (0) | 2021.07.20 |
TIL 2 (1) : ๋ณ์ (JavaScript) (0) | 2021.07.20 |
TIL 1: ํ์ด ํ๋ก๊ทธ๋๋ฐ/์๋์ฝ๋/์ฝ๋ ์ค๋ํซ/SQ3R (0) | 2021.07.19 |