๊ฐ๋ฐ_TIL
๊ฐ๋ฐ_TIL | 2022-07-25 (67)
by Hee94
2022. 7. 26.
๐ Function
What is Function
- ํจ์์ ์ญํ
- ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๊ณ , ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐํ๋ ํ๋ก๊ทธ๋จ๋ค์ ์ ๋ง๋ค ๊ณ ์ ํ ๊ธฐ๋ฅ๋ค์ด ์๊ณ , ๊ธฐ๋ฅ์ ์ํํ๋ ํจ์๋ค์ด ์์
- ์ ์ฐจ์ ์ธ์ด์๋ ํจ์๊ฐ ํ๋ก๊ทธ๋จ์์ ๊ต์ฅํ ์ค์ํ ๋ถ๋ถ์ ๋ด๋นํ๋ค
- javascript๋ oop(๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ) ์ธ์ด๊ฐ ์๋์ง๋ง ๊ฐ์ง๋ก function์ ์ค์ํ๊ฒ ์ํํด ๋ธ๋ค.
- ํจ์๋ Input์ ๋ฐ์์ ์ฒ๋ฆฌํ๋ค Output์ ๋๋ ค์ค๋ค.
- ํจ์์ ์ ์
- ํจ์๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ๊ทผ๋ณธ์ ์ธ ๋น๋ฉ ๋ธ๋ญ์ด๋ค
- ํ๋์ ์ค๊ณ๋ ํจ์๋ ์ฌ๋ฌ ๋ฒ ์ฌ์ฌ์ฉํ ์ ์๋ค
- ํ๋์ ํ์คํฌ๋ฅผ ์ํํ๊ฑฐ๋ ๊ณ์ฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ง๋ค
- → ํ๋์ ํจ์๋ ํ๋์ ๊ธฐ๋ฅ๋ง์ ๋ด๋ ๊ฒ์ด ์ข๋ค!
Function Declaration
- ํจ์๋ฅผ ์ ์ธํ๊ธฐ ์ํด์๋
function ํจ์์ด๋ฆ(ํ๋ผ๋ฏธํฐ1, ํ๋ผ๋ฏธํฐ2..) { ๋ด์ฉ.. ๋ฆฌํด; }
๊ณผ ๊ฐ์ ๋ฐฉ์์ ์ฌ์ฉํ๋ค
- ํจ์์ ์ด๋ฆ์ ์ด๋ค ํ์๋ฅผ ์ํํ๋ ๊ฒ์ธ์ง ๋์ฌ๋ก ๋ค์ด๋ฐํด์ฃผ๋ ๊ฒ์ด ์ข๋ค
- ์ด๋ฆ์ด ์ ์ง์ด์ง์ง ์๋๋ค๋ฉด, ํ๋์ ๊ธฐ๋ฅ์ ๊ณผ์ฐ ์ํํ๊ณ ์์๋์ง ๊ณ ๋ฏผํด๋ด
์๋ค
- Javascript์์ function์ ์ค๋ธ์ ํธ ํ์์ด๋ค.
- ํจ์๋ฅผ ๋ณ์์ ํ ๋น ๊ฐ๋ฅ
- ํจ์๋ฅผ ํ๋ผ๋ฏธํฐ์ ํ ๋น ๊ฐ๋ฅ
- ํจ์๋ฅผ ๋ฆฌํดํ ์ ์์
- ํจ์๋ฅผ ์ ์ธํ๊ณ ,
ํจ์์ด๋ฆ()
ํ์์ผ๋ก ํจ์๋ฅผ ํธ์ถํ ์ ์๋ค
function printLog(message) {
console.log(message)
}
log('Hello@');
Parameter
- ํจ์๋ฅผ ์ ๋ฌํ๋ ํ๋ผ๋ฏธํฐ๋ primitive ํน์ object ํ์
์ด ๋ค์ด๊ฐ ์ ์๋ค.
- primitive ํ์
์ ๊ฒฝ์ฐ : value๊ฐ ์ ๋ฌ๋จ(์ ์, ๋ฌธ์)
- object ํ์
์ ๊ฒฝ์ฐ : reference๊ฐ ์ ๋ฌ๋จ
- ํจ์ ์์์ ์ค๋ธ์ ํธ ๋ด๋ถ์ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ๊ฐ์ด ๋ณ๊ฒฝ๋จ
function changeName(obj) {
obj.name ='coder';
}
const ellie = {name: 'ellie'};
changeName(ellie);
console.log(ellie);
Default Parameter
- ํจ์์์ ํ๋ผ๋ฏธํฐ๊ฐ ์ ๋ฌ๋์ง ์์ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ ๋ฐฉ๋ฒ
ํ๋ผ๋ฏธํฐ=’๋ํดํธ๊ฐ’
์ผ๋ก ์ด๊ธฐํ๋ฅผ ํด๋๋ฉด ๊ฐ์ด ์์ ๋, ์ด ๋ํดํธ ๊ฐ์ ์ฌ์ฉ
- ๋ํดํธ ๊ฐ์ ์ฌ์ฉํ ๊ฒฝ์ฐ๋ ์ผ๋ฐ์ ์ํฉ์์ ๊ทธ๋ฅ ์ง๋์น ์๋ ์๋ ํ๋ผ๋ฏธํฐ ์ด๊ฑฐ๋, ํน์ํ ์ผ์ด์ค๋ฅผ ๋๋นํ ์
์ด๋ค
function ๋ถ๊ณ ๊ธฐ๋ฒ๊ฑฐ(์ฃผ๋ฌธ, ์์ค='๋ถ๊ณ ๊ธฐ์์ค'){
console.log('์ค๋ ๋ค์ด์์ด์', ์ฃผ๋ฌธ, ์์ค);
}
๋ถ๊ณ ๊ธฐ๋ฒ๊ฑฐ('1๊ฐ', '์ผ์ฒฉ');
Rest Parameter
- ์
๋ ฅํ ๊ฐ์ ๋ฐฐ์ด ํํ๋ก ๋ฌถ์ด์ฃผ๋ ๋ฐฉ์์ ํ๋ผ๋ฏธํฐ
…args
ํํ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ์์ฑํ๋ค
- ์
๋ ฅํ ๊ฐ์ ๋ฐฐ์ด(๋ฆฌ์คํธ)๋ก ๋ฌถ์ด์ ์ฌ์ฉํ๊ฒ ๋ ๊ฒฝ์ฐ์ ์์ฑํ๋ค
function ์กฐ๋ฆฝ_ํ๋ฒ๊ฑฐ(...์์ฌ๋ฃ){
console.log("์ฐธ๊นจ๋นต ์์");
for (i=0; i<์์ฌ๋ฃ.length; i++) {
// i = 0์ผ๋,
console.log(์์ฌ๋ฃ[i]);
}
console.log("๋ฐ๋๋ด๋ด๋ด!"):
}
์กฐ๋ฆฝ_ํ๋ฒ๊ฑฐ('์์ ๊ณ ๊ธฐ ํจํฐ ๋ ์ฅ', 'ํน๋ณํ ์์ค', '์์์ถ', '์น์ฆ', 'ํผํด', '์ํ๊น์ง')