TIL 17: ๊ณ ์ฐจํ•จ์ˆ˜

์˜ค๋Š˜์€ ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. 

๋ฐฐ์šฐ๋ฉด์„œ ํด๋กœ์ €์™€ ๋น„์Šทํ•˜๋‹ค๋Š” ๋А๋‚Œ์„ ๋งŽ์ด ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

 

Java Script์—์„œ์˜ ํ•จ์ˆ˜๋Š” ์ผ๊ธ‰๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ผ๊ธ‰๊ฐ์ฒด(first-class citizen)๋Š” ํŠน๋ณ„ํ•œ ๋Œ€์šฐ๋ฅผ ๋ฐ›๋Š” ๊ฐœ์ฒด๋กœ์„œ ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ณ€์ˆ˜๋‚˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์•ˆ์— ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค.
  • ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฆฌํ„ด ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋‹ค๋ฅธ ํ•จ์ˆ˜(caller)์˜ ์ธ์ž(argument)๋กœ ์ „๋‹ฌ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ฝœ๋ฐฑ ํ•จ์ˆ˜(callback function)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋œ ๊ณ ์ฐจํ•จ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฟ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ์ค‘์—์„œ ์ผ๋ถ€๋Š” ๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์ฝ”ํ”Œ๋ฆฟ์„ ํ•  ๋•Œ๋Š” ์ฃผ๋กœ filter, map, reduce ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ธ”๋กœ๊น… ๋๋‚˜๊ณ  ์•„๋ž˜์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋“ค ์ถ”๊ฐ€์ ์œผ๋กœ ๋” ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

  • forEach, find, sort, some, every

 

์ด์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ์ž…๋‹ˆ๋‹ค.

์‚ฌ๊ณ  ์ˆ˜์ค€์—์„œ์˜ ์ถ”์ƒํ™”๋ฅผ ๋งŽ์ด ํ•จ์œผ๋กœ์จ ์ƒ์‚ฐ์„ฑ์ด ๋น„์•ฝ์ ์œผ๋กœ ์ƒ์Šนํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ฝ”ํ”Œ๋ฆฟ์„ ํ’€๋ฉด์„œ ์ฒ˜์Œ์—๋Š” ๋‚ฏ์„ค์–ด์„œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์–ด์ƒ‰ํ–ˆ์ง€๋งŒ  ์ต์ˆ™ํ•ด์ง€๋‹ˆ for๋ฌธ๋ณด๋‹ค ๋” ํŽธ๋ฆฌํ•œ ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ ๋ฐฐ์—ด ํ˜•์‹์œผ๋กœ ๋ฆฌํ„ดํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ๋” ์ž˜ ์“ธ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (:

 

 

 

 

์ด์™ธ์— ์ถ”๊ฐ€์ ์œผ๋กœ ๋ฐฐ์šด ๊ฒƒ๋“ค

์ฝ”ํ…Œ ์ค€๋น„ ์ถ”์ฒœ ์‚ฌ์ดํŠธ: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, ๋ฐฑ์ค€, kata code wars

ํ•จ์ˆ˜ ํ‘œํ˜„์‹(function expression)์€ ํ•จ์ˆ˜ ์„ ์–ธ์‹(function declaration)๊ณผ ๋‹ค๋ฅด๊ฒŒ ํ˜ธ์ด์ŠคํŒ…์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

foo(): ํ˜ธ์ถœ;

foo: ๋ฐ˜ํ™˜;

๊ณ ์ฐจํ•จ์ˆ˜: ์‹คํ–‰์ด ๋˜์–ด์žˆ์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋ฐ˜ํ™˜