๐ ์ฝ๋ฐฑํจ์ ์ฝ๋ฐฑ ํจ์๋ ๋ค๋ฅธ ์ฝ๋์ ์ธ์๋ก ๋๊ฒจ ์ฃผ๋ ํจ์์ ๋๋ค. ์ด๋ค ํจ์ X๋ฅผ ํธ์ถํ๋ฉด์ ์ธ์๋ก ์ฝ๋ฐฑ ํจ์ Y๋ฅผ ๋๊ฒจ ์ฃผ์๋ค๊ณ ํ๋ฉด, ํจ์ X๋ ํน์ ์กฐ๊ฑด์ผ ๋ Y๋ฅผ ํธ์ถํ๊ฒ ๋ฉ๋๋ค. ์ด์ฒ๋ผ ์ฝ๋ฐฑ ํจ์๋ ๋ค๋ฅธ ์ฝ๋์๊ฒ ์ธ์๋ก ๋๊ฒจ์ค์ผ๋ก์จ ๊ทธ ์ ์ด๊ถ์ ํจ๊ป ์์ํ
๐ ๋ฐ์ดํฐ ํ์ ๐ ๋ฐ์ดํฐ ํ ๋น๊ณผ ๋ถ๋ณ์ฑ ๐ undefined / null โญ๏ธ ์ ๋ฆฌ โญ๏ธ
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐ์ดํฐ ํ์ ์ ํฌ๊ฒ ๊ธฐ๋ณธ(์์) ํ์ ๊ณผ ์ฐธ์กฐ ํ์ ์ผ๋ก ๋๋๋ค.๊ธฐ๋ณธํ : String, Number, Boolean, Null, Undefined, Symbol(es6) ยทยทยท์ฐธ์กฐํ : Object, Array, Function, Date ยทยทยท๊ธฐ๋ณธํ๊ณผ ์ฐธ
async์ await๋ promise๋ฅผ ์ข ๋ ๊ฐ๊ฒฐํ๊ณ ๊ฐํธํ ์ฝ๋๋ก ๋ณด์ฌ์ง๊ฒ ํ๋ค. async ์ await๋ ์๋ก์ด ๊ฒ์ด ์๋๋ผ ๊ธฐ์กด์ ์กด์ฌํ๋ ๊ฒ ์์ ๊ฐํธํ๊ฒ ์ธ ์ ์๋ API๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด๋ค. ์ฌ์ฉ๋ฒ function ํค์๋ ์์ async๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ๋
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋๊ธฐ์ ์ธ์ด๋ก ํ ๋ฒ์ ํ๋์ ์์ ์ ์ํํ๋ค.๋๊ธฐ๋? ํ๋ก๊ทธ๋จ์ด ์์ฑ๋ ์์๋๋ก ์คํ๋๋ ๊ฒ๋น๋๊ธฐ๋? ํน์ ์ฝ๋๊ฐ ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค์ ์ฝ๋๋ฅผ ์งํํ๋ ๊ฒ์ด ์๋์ฝ๋์ ์งํ์ด ๋ฉ์ถ์ง ์๊ณ ๋ค์ ์ฝ๋๋ฅผ ๋จผ์ ์คํํ๋ ๊ฒ์ด๋ค.๋๊ธฐ\-- ์ง๋ ฌ์ (์์๋๋ก
๋งค๊ฐ๋ณ์(Parameter1)๋? ํจ์์ ์ ์ํ ๋ ์์ฑํ๋ ํจ์์ ์ ๋ ฅ ๋ณ์์ธ์(arguments)๋? ํจ์๋ฅผ ํธ์ถํ ๋ ์ ๋ฌํ๋ ์ค์ ์ ๋ ฅ ๊ฐ๋งค๊ฐ๋ณ์์ ๊ฐฏ์๊ฐ ์ ํด์ ธ ์์ง ์์ ๊ฐ๋ณ์ธ์์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ผ๋ก arguments๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ๋๋จธ์ง ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ
๊ตฌ์กฐ๋ถํดํ ๋น ๊ตฌ์กฐ๋ถํดํ ๋น ๊ตฌ๋ฌธ์ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์์ฑ์ ๋ถํดํด, ๊ทธ ๊ฐ์ ๋ณ์์ ๋ด์ ์ ์๊ฒ ํ๋ ํํ์์ด๋ค. 1. ๋ฐฐ์ด์ ๊ตฌ์กฐ๋ถํดํ ๋น ๋ฐฐ์ด ๋ด๋ถ ๊ฐ์ ๋ณ์์ ๊ฐ๊ฐ ํ ๋นํ๊ณ ์ ํ ๋ 1) ๊ธฐ์กด ๋ฐฐ์ด๋ช ์ ๋๊ดํธ๋ฅผ ๋ถ์ธ ๋ค ๋ถ๋ฅด๊ณ ์ ํ๋ index๋ฒํธ๋ฅผ ๋ฃ์ด ํด๋น ๋ฐ์ดํฐ
ํจ์ ์ ์ ๋ฐฉ๋ฒ 1. ํจ์ ์ ์ธ์ ํจ์ ์ ์ธ์ function์ผ๋ก ์์ํ๋ค. ์ ์ธ ๋ ํจ์๋ ํธ์ถ ๋ ๋๋ง๋ค ์คํ๋๋ค. ํจ์ ์คํ ์ ํจ์์ ์ด๋ฆ์ ํธ์ถํ๋ฉด ๋๋ค. 2. ํจ์ ํํ์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ํจ์๋ฅผ ํ๋์ ๊ฐ์ผ๋ก ์ทจ๊ธํ๊ธฐ ๋๋ฌธ์ ํจ์๋ฅผ ๋ณ์์ ๊ฐ์ ๋์ ํ๋ฏ์ด
์ฌ์ ์ง์ > html์์์ ์ด๋ฒคํธ ์ ๋ฌ ๋ฐฉ์ ์ด๋ ํ ํ๊ทธ(ex) div, ul, li, a ๋ฑ)๋ฅผ ํด๋ฆญํ์ ๊ฒฝ์ฐ ํด๋น ํ๊ทธ๋ง์ด ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๋ ๊ฒ์ด ์๋๋ผ ํ๊ทธ๋ฅผ ๊ฐ์ธ๊ณ ์๋ ๋ถ๋ชจ ํ๊ทธ๋ค๋ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ์ธ์ํ๊ณ ๋ฐ์ํ๊ฒ ๋๋ค. ์ด๊ฒ์ ๋ฒ๋ธ์ (Bubble Up)
๋ณต์ ์ ์ํ๋ ์์คํ ์ ๊ฐ์ฅ ์ค์ํ ํน์ง์ ๋ณต์ ๋ค. ํ๋ก๊ทธ๋๋ฐ์์ ๋ณต์ ๊ฐ์ ๋ณ๊ฒฝํ ๊ฒ์ ๋ณ์ b์ด๊ธฐ ๋๋ฌธ์ ๋ณ์ a์ ๋ด๊ฒจ์๋ ๊ฐ์ ๊ทธ๋๋ก์ด๋ค. ์ฆ ๋ณ์ b์ ๊ฐ์ ๋ณ์a์ ๊ฐ์ด ๋ณต์ ๋ ๊ฒ์ด๋ค. ์ฐธ์กฐ ๋ณ์ b์ ๋ด๊ธด ๊ฐ์ฒด์ id ๊ฐ์ 2๋ก ๋ณ๊ฒฝํ์ ๋ฟ์ธ๋ฐ a.i
๋ฐ์ดํฐ ํ์ ์ด๋ ๋ฐ์ดํฐ์ ํํ๋ฅผ ์๋ฏธํ๋ค.๋ฐ์ดํฐ ํ์ ์ ๊ธฐ๋ณธํ(์์)๊ณผ ์ฐธ์กฐํ(๊ฐ์ฒด)์ด ์๋ค.=> ๊ฐ์ฒด๊ฐ ์๋ ๋ฐ์ดํฐ ํ์ ๊ณผ ๊ฐ์ฒด ๋ฐ์ดํฐ ํ์ ์ด๋ผ๊ณ ๋ ํ๋ค.์์ ์ฝ๋์์์ฒ๋ผ ๋ฌธ์์ด์ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค.ํ์ง๋ง ๋ฌธ์์ด์ ๊ฐ์ฒด๊ฐ ์๋๋ค.๊ทธ ์ด์ ๋ ๋ฌธ์์ด์ ๊ธฐ๋ณธ
ํ์ค ๋ด์ฅ๊ฐ์ฒด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด ํ๋ก๊ทธ๋๋ฐ์ ํ๋๋ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ํ ๋๊ตฌ => ๋ด์ฅ๊ฐ์ฒด๊ฐ ์ค์ํ ์ด์ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๋ ๊ฒ์ ์ธ์ด์ ํธ์คํธ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ๋ค์ ํตํด์ ์๋ก์ด ์ํํธ์จ์ด๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ด์ฅ ๊ฐ์ฒด์ ๋ํ ์ดํด๋
์์ ์์์ด๋? ๊ฐ์ฒด๋ ์ฐ๊ด๋ ๋ก์ง๋ค๋ก ์ด๋ฃจ์ด์ง ์์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ํ ์ ์๋ค. ์์์ ๊ฐ์ฒด์ ๋ก์ง์ ๊ทธ๋๋ก ๋ฌผ๋ ค ๋ฐ์ ๋ ๋ค๋ฅธ ๊ฐ๊ฒ๋ฅผ ๋ง๋ค ์ ์๋ ๊ธฐ๋ฅ์ ใ ์๋ฏธํ๋. ์์๋ฐ์ ๊ฐ์ฒด๊ฐ ๋ถ๋ชจ๊ฐ์ฒด์ ์ด๋ค ๊ธฐ๋ฅ์ ์ ์ธํ๊ณ ์ถ๊ฐํ๋ฉด์ ๊ธฐ์กฐ์ ๋ก์ง์ ์์ ํ๊ณ ๋ณ๊ฒฝํด์ ์๋ก์ด
this = '์ด๊ฒ' ํจ์ ๋ด์์ ํจ์ ํธ์ถ ๋งฅ๋ฝ์ ์๋ฏธ => ํจ์๋ฅผ ์ด๋ป๊ฒ ํธ์ถํ๋๋์ ๋ฐ๋ผ this๊ฐ ๊ฐ๋ฆฌํค๋ ๋์์ด ๋ฌ๋ผ์ง๋ค๋ ๋ป์ด๋ค. this๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์ ์์์ ์ฌ์ฉํ๋ ํค์๋ /์ด์ ์ ๋ฐฐ์ด argument/ this๋ ํจ์์์์ ์ฌ์ฉํ ์ ์๋ ์ผ์ข ์
๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋จ(Object Oriented Programing)์ ์ข ๋ ๋์ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ธฐ ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ผ๋ก ๊ธฐ๋ฅ๋ณ๋ก ๋ก์ง์ ๊ตฌ๋ถํด์ ์ ๋ฆฌํ๋ ๋ฐฉ์ ์ค ํ๋์ด๋ค. ์ฆ, ํ๋ก๊ทธ๋๋ฐ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ์ํ์์ผ ์ํ์ ํ์๋ฅผ ๊ฐ์ง ๊ฐ
ํจ์ ์์์ ํจ์์ ์ธ์์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๋ ๊ฐ์ฒด์ด๋ค.์ฌ์ฉ๋ฐฉ๋ฒ์ด ๋ฐฐ์ด๊ณผ ๋น์ทํ์ฌ ์ ์ฌ๋ฐฐ์ด์ด๋ผ๊ณ ๋ ํ๋ค.์๋ฐ์คํฌ๋ฆฝํธ ํจ์๋ arguments๋ผ๋ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ๋ฐฐ์ด์ ๋ด๋ ๊ฒ์ผ๋ก ์ฝ์๋์ด ์๋ค.1.sum์ด๋ผ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ํ์ง ์์ ํจ์๋ฅผ ๋ง๋ฆ.2.i=
์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ ๊ฐ์ฒด์ด๋ฉฐ(์ผ๋ฐ๊ฐ์ฒด์ฒ๋ผ ์ทจ๊ธ ๋ ์ ์๋ค) "๊ฐ"์ด๋ค.ํจ์๋ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ณ์, ๊ฐ์ฒด, ๋ฐฐ์ด, ํจ์์ ๋ฆฌํด๊ฐ, ํจ์์ ์ธ์๊ฐ์ด ๋ ์ ์๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ์ผ๋ก ๋ณํ ์ ์๋ ๊ฐ์ด๋ค.1\. ์ฒซ๊ธ์๋ก ๋ฌ๋ฌ($), ์ธ๋๋ฐ(\_), ์ํ๋ฒณ
์ ํจ๋ฒ์(Scope)๋ ๋ณ์์ ์๋ช ์ ์๋ฏธํ๋ค.๋ณ์๋ ์ ํจ๋ฒ์๊ฐ ์กด์ฌํ๋๋ฐ ์ ์ญ๋ณ์ ๋๋ ์ง์ญ๋ณ์๋ก ๋๋๋ค.ํจ์ ๋ฐ์์ ๋ณ์๋ฅผ ์ ์ธํ๋ฉด ๊ทธ ๋ณ์๋ ์ ์ญ๋ณ์๊ฐ ๋๋ค.์ ์ญ๋ณ์๋ ์คํฌ๋ฆฝํธ ์ ์ฒด์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ๋ณ์์ด๋ค.์ด๋ค ๋ณ์ ์์์๋ ๊ทธ ๋ณ์์ฅ ์ ๊ทผํ ์ ์์ผ๋ฉฐ,๋๋ฌธ์
ํ๋ก๊ทธ๋จ์ ( ์๊ณ ๋จ์ํ ๋จ์ => ํฌ๊ณ ๋ณต์กํ ๊ฒ ) ์ผ๋ก ์งํ๋๋ค.์ด ๊ณผ์ ์์ ํ๋์ ๊ธฐ๊ณ๊ฐ ์ฌ๋ฌ ๊ฐ์ ๋ถํ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ฒ์ฒ๋ผ,ํ๋์ ์ฝ๋๋ฅผ ์ฌ๋ฌ ๊ฐ์ ํ์ผ๋ก ๋ถ๋ฆฌ ํ ์ ์๋ค.์ด๋ ๊ฒ ๋ถ๋ฆฌ๋๋ ์ฝ๋์ ๋ถํ์ '๋ชจ๋'์ด๋ผ๊ณ ํ๋ฉฐ ์ด ๊ณผ์ ์ '๋ชจ๋ํ'๋ผ๊ณ ํ๋ค.๋ณธ์ธ