๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ_TIL

๊ฐœ๋ฐœ_TIL | 2022-07-25 (67)

by Hee94 2022. 7. 26.

๐Ÿ“Œ Function

What is Function

  1. ํ•จ์ˆ˜์˜ ์—ญํ• 
  • ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ , ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค์€ ์ €๋งˆ๋‹ค ๊ณ ์œ ํ•œ ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๊ณ , ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•จ์ˆ˜๋“ค์ด ์žˆ์Œ
  • ์ ˆ์ฐจ์  ์–ธ์–ด์—๋Š” ํ•จ์ˆ˜๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๋‹ด๋‹นํ•œ๋‹ค
  • javascript๋Š” oop(๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ์–ธ์–ด๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ๊ฐ€์งœ๋กœ function์„ ์ค‘์š”ํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•ด ๋‚ธ๋‹ค.
  • ํ•จ์ˆ˜๋Š” Input์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•œ๋’ค Output์„ ๋Œ๋ ค์ค€๋‹ค.
  1. ํ•จ์ˆ˜์˜ ์ •์˜
  • ํ•จ์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ทผ๋ณธ์ ์ธ ๋นŒ๋”ฉ ๋ธ”๋Ÿญ์ด๋‹ค
    • ํ•˜๋‚˜์˜ ์„ค๊ณ„๋œ ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ๋ฒˆ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค
    • ํ•˜๋‚˜์˜ ํƒœ์Šคํฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„๋‹ค
    • ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ๋งŒ์„ ๋‹ด๋Š” ๊ฒƒ์ด ์ข‹๋‹ค!

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("๋”ฐ๋ž€๋”ด๋”ด๋”ด!"):
}
์กฐ๋ฆฝ_ํ–„๋ฒ„๊ฑฐ('์ˆœ์‡ ๊ณ ๊ธฐ ํŒจํ‹ฐ ๋‘ ์žฅ', 'ํŠน๋ณ„ํ•œ ์†Œ์Šค', '์–‘์ƒ์ถ”', '์น˜์ฆˆ', 'ํ”ผํด', '์–‘ํŒŒ๊นŒ์ง€')

'๊ฐœ๋ฐœ_TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๊ฐœ๋ฐœ_TIL | 2022-07-27 (69)  (0) 2022.07.27
๊ฐœ๋ฐœ_TIL | 2022-07-26 (68)  (0) 2022.07.26
๊ฐœ๋ฐœ_TIL | 2022-07-22 (66)  (0) 2022.07.22
๊ฐœ๋ฐœ_TIL | 2022-07-21 (65)  (0) 2022.07.21
๊ฐœ๋ฐœ_TIL | 2022-07-20 (64)  (0) 2022.07.20