๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Web Programming/JavaScript

[JavaScript] ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Arrow Function) ๊ธฐ๋ณธ ์šฉ๋ฒ• ์ •๋ฆฌ

by Haren 2022. 11. 10.


๐Ÿง ์™œ ๊ฐ‘์ž๊ธฐ JavaScript ํฌ์ŠคํŒ…์„ ํ•˜๋‚˜์š”?

์›น FE ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ์€๋ฐ, JS๋ฅผ ํฌํ•จํ•˜์—ฌ ํ•„์š”ํ•œ ๊ธฐ์ˆ ๋“ค์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ํ•™์Šต ์ˆ˜์ค€์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์œ ๋ฐ๋ฏธ, ์ฝ”์„ธ๋ผ ๋“ฑ๋“ฑ... ํ•™์Šต์„ ๋” ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธธ์„ ๋ชจ์ƒ‰์„ ํ•˜๋‹ค๊ฐ€ ์œ ๋ฐ๋ฏธ์—์„œ ์•„๋ž˜์˜ ๊ฐ•์˜๋ฅผ ๊ตฌ๋งคํ•˜์—ฌ ๋“ฃ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

 

ใ€ํ•œ๊ธ€์ž๋ง‰ใ€‘ React ์™„๋ฒฝ ๊ฐ€์ด๋“œ with Redux, Next.js, TypeScript

Javascript๋ถ€ํ„ฐ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ๊นŒ์ง€, React์™€ ํ”„๋ก ํŠธ์—”๋“œ ์ตœ์‹  ๊ธฐ์ˆ ์„ ๊ฐ€์žฅ ์‰ฝ๊ณ  ํ™•์‹คํ•˜๊ฒŒ ๋ฐฐ์šฐ๋Š” ๋ฒ•

www.udemy.com

๋‚˜๋ฆ„๋Œ€๋กœ์˜ ๋‚ด์‹ค ๋‹ค์ง€๊ธฐ๋ผ๊ณ  ๋ด์•ผ๊ฒ ๋‹ค. ์•„๋ฌดํŠผ ๊ทธ๋ž˜์„œ ์ด ๊ฐ•์˜์˜ ์„น์…˜ ์ค‘ JS๋ฅผ ์งง๊ฒŒ ๋ณต์Šตํ•˜๋Š” ์„น์…˜์ด ์žˆ๋Š”๋ฐ, ๊ทธ ์„น์…˜์˜ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ์ƒ๊ธฐ์‹œํ‚จ ES6 ๋ฌธ๋ฒ•๋“ค ์ค‘์— ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค ์‹ถ์€ ๊ฒƒ๋“ค์€ ์ •๋ฆฌํ•ด๋†“๊ณ  ๋‘๊ณ ๋‘๊ณ  ๋ด์•ผ๊ฒ ๋‹ค ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ฒซ JS ๊ณต๋ถ€ ์ •๋ฆฌ๋Š” ES6์˜ ์ตœ์‹  ๋ฌธ๋ฒ• ์ค‘์— ํ•˜๋‚˜์ธ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ (Arrow Function)์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 


๐Ÿ‘‰ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” JS์—์„œ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋˜ ์ „ํ†ต์ ์ธ ํ‚ค์›Œ๋“œ์ธ function ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ด๋‹ค.

ํ•˜์ง€๋งŒ ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  ์ œํ•œ์ ์ธ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ฐ•์˜์— ๋”ฐ๋ฅด๋ฉด .this ํ‚ค์›Œ๋“œ๋ฅผ ์ข€ ๋” ์•ˆ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋“ค์—ˆ๊ณ , MDN์— ๋”ฐ๋ฅด๋ฉด ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • this๋‚˜ super์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ์—†๊ณ , methods๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • new.target ํ‚ค์›Œ๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์Šค์ฝ”ํ”„๋ฅผ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” call, apply, bind methods๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ƒ์„ฑ์ž(Constructor) ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • yield ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

โ–ฒ function ํ‚ค์›Œ๋“œ๋ฅผ ํ™œ์šฉํ•œ ํ•จ์ˆ˜ ์„ ์–ธ ๋ฐ ์ •์˜.
โ–ฒ ์œ„์˜ ํ•จ์ˆ˜๋ฅผ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋ณ€๊ฒฝํ•œ ์˜ˆ.

๐Ÿ‘‰ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ์ ์ธ ์šฉ๋ฒ•

๊ธฐ๋ณธ์ ์ธ ์šฉ๋ฒ•์€ ์œ„์™€ ๊ฐ™๋‹ค. ๊ณ ๊ธ‰ ์šฉ๋ฒ•๋„ ์žˆ๊ณ , .this ๋ฐ”์ธ๋”ฉ ๋“ฑ ๋‹ค์–‘ํ•œ ํŠน์ง•๋“ค์ด ์žˆ์ง€๋งŒ, ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ๊ธฐ๋ณธ ์šฉ๋ฒ•์— ๊ด€ํ•œ ํฌ์ŠคํŒ…์ด๋ฏ€๋กœ, ๊ธฐํšŒ๊ฐ€ ๋‹ฟ๊ณ  ๋‚ด๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ดํ•ด๋ฅผ ํ–ˆ๋‹ค๋ฉด ์ถ”ํ›„์— ํฌ์ŠคํŒ…์„ ํ•ด์„œ ์ •๋ฆฌ๋ฅผ ํ•ด๋†“๋„๋ก ํ•˜๊ฒ ๋‹ค. 

 


๐Ÿ‘€ ๋งˆ์น˜๋ฉฐ

์ด๋ฒˆ์— ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ , MDN ๋“ฑ์„ ๋’ค์ง€๋ฉฐ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์ง€๊ธฐ ์œ„ํ•œ ๊ณต๋ถ€๋ฅผ ํ•˜๋Š” ์ค‘์ธ๋ฐ, ์›น FE ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ๋‹ค๋Š” ๋งˆ์Œ์— ๋น„ํ•ด JS์˜ ๊ธฐ๋ณธ์ ์ธ ๋ถ€๋ถ„์กฐ์ฐจ ๋ชจ๋ฅด๊ณ  ์žˆ๋‹ค๋Š” ํ˜„์‹ค์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ž…๋งŒ ์‚ด์•„๊ฐ€์ง€๊ณ ์„œ๋Š”.... ๊ทธ๋ž˜์„œ ์•ž์œผ๋กœ๋Š” ์ด๋ ‡๊ฒŒ ํ•˜๋‚˜์”ฉ ์ƒˆ๋กœ์šด๊ฑธ ์•Œ๊ฑฐ๋‚˜ ํ™•์‹คํžˆ ๋ณต์Šต์„ ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•ด์„œ ๊ณต๋ถ€๋ฅผ ํ–ˆ๋‹ค๋Š” ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๊ณ , ํ•„์š”ํ•  ๋•Œ ๋‚ด๊ฐ€ ๊ณผ๊ฑฐ์˜ ๋‚˜์˜ ์ƒ๊ฐ์„ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ƒ๊ฐ์ด๋‹ค. ์ด์ œ ์ •๋ง ์—ด์‹ฌํžˆ ํ•ด์•ผํ•˜๋Š”๋ฐ...

 

ํ˜น์‹œ๋ผ๋„ ์ด ํฌ์ŠคํŒ…์˜ ๋‚ด์šฉ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋ง์”€ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :)


๐Ÿ‘€ ์ฐธ๊ณ  ์ž๋ฃŒ

 

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ - JavaScript | MDN

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ํ‘œํ˜„(arrow function expression)์€ ์ „ํ†ต์ ์ธ ํ•จ์ˆ˜ํ‘œํ˜„(function)์˜ ๊ฐ„ํŽธํ•œ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ œํ•œ์ ์ด ์žˆ๊ณ  ๋ชจ๋“  ์ƒํ™ฉ์— ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

developer.mozilla.org

 

'Web Programming > JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JavaScript] ES6 ๋ฌธ๋ฒ•์„ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด์ž.  (0) 2022.11.25