function
ํจ์ ์ ์ธ์
ํจ์ ํํ์
js๋ ํจ์๋ฅผ ํน๋ณํ ๋์์ ํ๋ ๊ตฌ์กฐ
๊ฐ ์๋ ํน๋ณํ ์ข
๋ฅ์ ๊ฐ
์ผ๋ก ์ทจ๊ธ
๋ฐ๋ผ์, ํจ์๋ฅผ ๋ณต์ฌํด ๋ค๋ฅธ ๋ณ์์ ํ ๋นํ ์๋ ์๋ค.
์๋์ฝ๋๋ฅผ ๋ณด๋ฉด ํจ์์ ์ด๋ฆ์์ด ๋ณ์์ ํ ๋นํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ฝ๋ฐฑ ํจ์
ํจ์๋ฅผ ํจ์์ ์ธ์๋ก ์ ๋ฌํ๊ณ , ํ์ํ ๋ ์ธ์๋ก ์ ๋ฌํ ๊ทธ ํจ์๋ฅผ ๋์ค์ ํธ์ถํ๋ ๊ฒ
์๋์ ์ฝ๋๋ฅผ ๋ณด๋ฉด yes์ ์ธ์๋ก alert('๋์')๊ฐ, no์ ์ธ์๋ก alert('์ทจ์')๊ฐ ํ ๋น๋๋ ๊ฒ์ ๋ณผ์ ์๋ค.
ํจ์ ํํ์๊ณผ ํจ์ ์ ์ธ๋ฌธ ์ฐจ์ด
1. js์์ง์ด ํจ์๋ฅผ ์์ฑํ๋ ์๊ธฐ
ํจ์ ํํ์์ ์ค์ ์คํ ํ๋ฆ์ด ๋๋ฌํ์๋ ์์ฑํ๊ณ , ํจ์ ์ ์ธ๋ฌธ์ ์ ์๋๊ธฐ์ ์๋ ํธ์ถํ ์ ์๋ค. -> ํจ์ ์ ์ธ์ ์ ์ญํจ์๋ก ์ ์ธ์ด ๋๋ฉฐ, js๋ ์คํฌ๋ฆฝํธ ์คํ์ ๋ชจ๋ ์ ์ธ๋ฌธ์ ์ฐพ๊ณ ์์ฑํ์ ์คํ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์, ์๋์ ๊ฐ์ด ์ ์ธ๋ฌธ ์ ์ ํธ์ถ์ ํด๋ ์คํ์ ํ๋ฉด ๋์์ด ๊ฐ๋ฅํ๋ค.
ํ์ง๋ง ํจ์ ํํ์์ ๋ถ๊ฐ๋ฅํ๋ค.
์ค์ฝํ
ํจ์ ์ ์ธ๋ฌธ์ ํจ์๊ฐ ์ ์ธ๋ ์ฝ๋ ๋ธ๋ญ ์์์๋ง ์ ํจํ๋ค.
๋ง์ฝ ๋ฐ๋ณต๋ฌธ์ด๋ if์๊ฐ์ด {}
์์ ํจ์๋ฅผ ์ ์ธํ๊ณ ๋ฐ์์ ํธ์ถํ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
์์ ๊ฐ์ด ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ํจ์ ํํ์์ ์ฌ์ฉ.
ํ์ดํ ํจ์
ํจ์ ํํ์๋ณด๋ค ๋จ์ํ๊ณ ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ์ผ๋ก ํจ์๋ฅผ ์์ฑ.
์ปจํ์คํธ๊ฐ ์๋ ๊ธด์ฝ๋๋ณด๋ค ์์ฒด ์ปจํ
์คํธ
๊ฐ ์๋ ์งง์ ์ฝ๋๋ฅผ ๋ด์ ์ฉ๋
์ธ์๊ฐ ํ๋๋ฐ์ ์๋ค๋ฉด ๊ดํธ๋ฅผ ์๋ต ๊ฐ๋ฅํ๊ณ , ์ธ์๊ฐ ์์๋ ๊ดํธ ์๋ต ๋ถ๊ฐ๋ฅํ๋ค.
ํจ์ ๋ด์ฉ์ด ์ฌ๋ฌ์ค์ผ๋๋ ์ค๊ดํธ๋ฅผ ์ด์ฉํ์ฌ ๋ฌถ์ด์ค๋ค.
ํน์ง
this๊ฐ ์๊ธฐ๋๋ฌธ์ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค. this๋ฅผ ํธ์ถํ๋ฉด ์ธ๋ถ์์ ๊ฐ์ ๊ฐ์ ธ์จ๋ค. this๊ฐ ์๊ธฐ ๋๋ฌธ์ new์ ํจ๊ป ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํด ์์ฑ์ ํจ์๋ก ์ฌ์ฉํ ์ ์๋ค.
this๊ฐ ์๊ธฐ๋๋ฌธ์
arr.forEach()
๋setTimeout()
๊ณผ ๊ฐ์ ํจ์๋ด์์ ํ์ฌ ์ปจํ ์คํธ๋ฅผ ์์ง ์๊ณ ์์ ์ด ๊ฐ๋ฅํ๋ค. (forEach๋ ๋ฐฐ์ด arr์ ์์ ๋์์ผ๋ก ์คํ์ด ๊ฐ๋ฅํ๊ณ setTimeout์ ๋ด์ฅ ์ค์ผ์ค๋ฌ๋ฅผ ๋์์ผ๋ก ์คํ)์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด์ธ arguments๊ฐ ์๋ค.
๋๋ฌธ์ this๊ฐ๊ณผ arguments๊ฐ์ ํจ๊ป ์ค์ด ํธ์ถ์ ํฌ์๋ฉํด์ฃผ๋ ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ๋ง๋ค๋ ์ ์ฉํ๋ค.
์์ ๊ฐ์ ์ฝ๋๋ฅผ ์ด์ฉํ๋ ค๋ฉด ์๋์ ๊ฐ์ด args์ ctx๋ฅผ ๋ฐ๋์ ์์ฑํด์ค์ผํ๋ค.
๋งค๊ฐ๋ณ์
์ค์ ํจ์์ ๋งค๊ฐ๋ณ์ ์ธ์๋ 2๊ฐ๋ก ์ ์ธ์ ํ์ด๋, ํธ์ถ ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ๋ฌ๊ฐ ๋ฃ์ด์ฃผ์ด๋ ์๋ฌ๊ฐ ๋์ง ์๋๋ค.
arguments
๋ผ๋ ํน์ํ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด
๊ฐ ์กด์ฌํด ์ด๋ฅผ ์ด์ฉํด ๋ชจ๋ ์ธ์๋ฅผ ์ ๊ทผ๊ฐ๋ฅํ๋ ํ์ดํ ํจ์์๋ arguments
๊ฐ ์๋ค.
spread ๋ฌธ๋ฒ :
ํจ์์ ๋ฐฐ์ด์ ์์๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ฌ๋ฌ๊ฐ๋ฅผ ์ ๋ ฅํ ๋, ์ผ์ผํ ์๋์ ๋ ฅ์ด ์๋ ์๋์ผ๋ก ์ ๋ ฅํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฌธ๋ฒ
๋ง๊ทธ๋๋ก array๋ฅผ ์ ๊ฐ์์ผ์ฃผ๋ ๋ฌธ๋ฒ์ผ๋ก ๋ฐฐ์ด์์
...
์ ๋ถ์ฌ์ฃผ๋ฉด๋๋ค.๋ฐฐ์ด๋ฟ๋ง์ด ์๋๋ผ
์ดํฐ๋ฌ๋ธ ๊ฐ์ฒด
๋ผ๋ฉด ๋ชจ๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.์ด๋ ๋ฌธ๋ฒ ๋ด๋ถ์์ iterator๋ฅผ ์ฌ์ฉํด ์์๋ฅผ ์์งํด ๊ฐ๊ฐ์ ๊ฐ์ ๋ฐํํ์ฌ
[]
๋ก ๊ฐ์ธ ๋ฌธ์ ๋ชฉ๋ก๋ค์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ฃผ๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ์ถ๋ ฅ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ธ๋ค.๋ฐ๋ผ์
[...obj]
์ ์ด์ฉํด ๋ฐฐ์ด์ ๋ง๋ค ์ ์์ง๋งArray.from(obj)
์ ๋น๊ตํด์[...obj]
๋ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด์๋ ์ฌ์ฉํ ์ ์๋ค๋ ๋จ์ ์ด ์์ด ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋ค๋๋Array.from()
์ ์ด์ฉํ๋ค.
Last updated