JavaScrip์ ๋ณ์ ์ข ๋ฅ์ธ var, let, const์ ์์๋ณด๋๋ก ํ์.var์ ๋ณ์ ์ ์ธ ๋ฐฉ์์ ๋ํด ์์๋ณด์
var์ ํน์ง์ธ ํธ์ด์คํ (hoisting)๊ณผ ์ ๋ํด ์์๋ณด๋๋ก ํ์.var์์๋ ๋ณ์๋ฅผ ์ ์ธํ๊ธฐ๋ ์ ์ ๊ฐ์ ํ ๋นํ ์ ์๊ณ ์ถ๋ ฅ๋ ํ ์์๋ค.
es6์ ์ถ๊ฐ๋ ํ์ดํ ํจ์(arrow function)์ ๋ํด ์์ ๋ณด๋๋ก ํ์.ํ์ดํ ํจ์๋ ํญ์ ์ต๋ช ํจ์์ด๊ณ ํจ์๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค ์ ์๋ค.๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก return ํ์ง ์์๋ ๊ฐ์ด return ๋๊ณ ๋ณธ๋ฌธ์ด ํ์ค ์ด๋ผ๋ฉด ์ค๊ดํธ({}) ์ ์๋ตํ ์ ์๋ค.ํ์ง๋ง ๋ณธ
es6์ ์ถ๊ฐ๋ ๋๋จธ์ง ๋งค๊ฐ๋ณ์(Rest Parameter)์ ๋ํด ์์ ๋ณด๋๋ก ํ์.
JavaScript์ setInterval์ ๋ํด ์์๋ณด๋๋ก ํ์.
getCurrentPosition์ ์ฌ์ฉ์์ ์์น(๊ฒฝ๋, ์๋)๋ฅผ ๊ฐ์ ธ์ค๋ JavaScript์ API์ด๋ค.์ฌ์ฉ๋ฒ์ ํด๋น ๋ฉ์๋์ ์ฒซ๋ฒ์จฐ ์ธ์๋ก๋ ์ฌ์ฉ์์ ์์น๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ ์ฑ๊ณตํ์๋ ํธ์ถ๋ ํจ์๋ฅผ ๋๋ฒ์งธ ์ธ์๋ก๋ ์๋ฌ๊ฐ ๋ฐ์ํ ๋ ํธ์ถ๋ ํจ์๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. ์ด ๋ฉ์
๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ ์์ ๊ฐ๋ค. ์กฐ๊ฑด๋ฌธ๊ณผ ์ ํ๋ฌธ ์ฌ์ด์ ๋ฌผ์ํ ?_ ๋ฅผ ์จ์ฃผ๊ณ ์ ํ๋ฌธ ์ฌ์ด์๋ ์ฝ๋ก :_ ์ ์จ์ค๋ค. ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ ๊ฒฝ์ฐ ์ผ์ชฝ์ ์๋ ์ ํ๋ฌธ1์ ๊ฐ์ ๋ฆฌํดํ๊ณ ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ ์ค๋ฅธ์ชฝ์ ์๋ ์ ํ๋ฌธ2์ ๊ฐ์ ๋ฆฌํดํ๋ค. > if๋ฌธ ์ฌ์ฉ์ > ์ผํญ ์กฐ๊ฑด
๋ฐฐ์ด์ ๊ฐ์ ๊ณฑํ๊ธฐ 2์ ์ฝ๋๋ arr์ 1, 2, 3, 4, 5 ๋ผ๋ ๊ฐ์ ๋ฃ์ด ๋ฐฐ์ด์ ๋ง๋ ํ map ํจ์๋ฅผ ํตํด arr ๋ฐฐ์ด์ ๊ฐ๊ฐ ๊ฐ์ ๊ณฑํ๊ธฐ 2๋ฅผ ํ ํ ๊ทธ ๊ฐ๋ค์ double์ ๋ฃ์ด ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ค.map ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด ์ ๊ฐ์ ํจ์๋ฅผ ํธ์ถํด
filter ํจ์๋ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ์์๋ง์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ค. ์ฌ์ฉ๋ฒ ๋ฐฐ์ด์์์ ์ฌ์ฉ๋ฒ var arr = [1, 2, 3, 4, 5, 6]; var except = arr.filter(num => num%2); console.log(except); //
replit์ ํ๋ค๊ฐ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋ ์๊ฐ์ ์ธ์์ ๊ฐ์์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ(?)์ ์ฃผ๋ ๋ฐฉ๋ฒ์ด ์๋? ์๋ค.์์ฒญ ์ด๋ ค์ด ๋ฌธ์ ๋ก ์๊ฐํ์ง๋ง ๊ฒ์์ ํด๋ณด๋ ์ฌ์ด ๋ฌธ์ ์์ด์ ์๊ฐํด๋ณด๋๋ก ํ๋ ค๊ณ ํ๋ค.์ธ์๋ฅผ ์ธ๊ฐ ๋ฐ์ต๋๋ค.์ฒซ๋ฒ์งธ ์ธ์๋ ๋ ๋์ ํด๋นํ๋ ์ซ์์ ๋๋ค.๋๋ฒ์งธ
์๋ฐ์คํฌ๋ฆฝํธ dom์ ๋ํด ๊ณต๋ถํ๋ค๊ฐ ์์ฃผ ์ ์ฉํ ๋ฉ์๋๋ฅผ ๋ฐ๊ฒฌํ์๋ค.๊ทธ๊ฑด ๋ฐ๋ก toggle ๋ฉ์๋์ด๋ค. add()์ remove()๊ฐ ํฉ์ณ์ง(?) ๊ฐ๋ ์ ๋ฉ์๋์ด๋ค.์ผ๋จ ์ ์ฝ๋๋ title์ด๋ผ๋ id๋ฅผ ๊ฐ์ง ํ๊ทธ๊ฐ ํด๋ฆญ ๋์์ ์ clicked์ด๋ผ๋ ํด๋์ค๋ฅผ ํด๋น
๋๋ ๋๊ธ ์ญ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ๋๊ธ ์ปดํฌ๋ํธ์ id ๊ฐ๊ณผ ๋๊ธ ์ญ์ ๋ฒํผ์id ๊ฐ์ ๊ฐ๊ฒ ๋ถ์ฌํ๊ณ filter ํจ์๋ฅผ ํตํด ํด๋น ๋๊ธ ์ญ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ค๊ณ ํ์๋ค....๊ทธ๋ฐ๋ฐ ์๋ฌด๋ฆฌ ์ฝ๋๋ฅผ ์์ ํ๊ณ ๋ค์ ์ง๋ด๋ ๊ธฐ๋ฅ์ด ์ ๋๋ก ์๋ํ์ง ์๋๊ฒ์ด์๋ค!๊ทธ๋ฌ๋ค ๊ตฌ๊ธ๋ง
ํ๋ก์ ํธ ์งํ ์ค map์ ๋๋ฆด๋ ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ์ map์ ๋๋ฆฌ๋ ๊ฐ์ฒด์ ๊ฐ์ด ์๋ ์ธ๋ถ์ ๊ฐ์ props๋ก ์ ๋ฌํด์ฃผ๊ณ ์ถ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐ์ดํฐ ํ์ ์๋ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค.ํ ๋น์ด๋ ์ฐ์ฐ์ ๋ณต์ ๋จ๊ฐ์ด ๋ด๊ธด ์ฃผ์๊ฐ์ ๋ณต์ ํจ๋ถ๋ณ์ฑ์ ๋ํ ๋น์ด๋ ์ฐ์ฐ์ง ์ฐธ์กฐ๋จ๊ฐ์ด ๋ด๊ธด ์ฃผ์๊ฐ๋ค๋ก ์ด๋ฃจ์ด์ง ๋ฌถ์์ ๊ฐ๋ฆฌํค๋ ์ฃผ์๊ฐ์ ๋ณต์ ํจ๋ฉ๋ชจ๋ฆฌ๋ ๋งค์ฐ ๋ง์ ๋นํธ(0, 1๋ก๋ง ํํํ ์ ์๋ ํ๋์ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ)๋ค๋
# ์คํ ์ปจํ ์คํธ ์คํ ์ปจํ ์คํธ(Execution Context)๋ **์คํํ ์ฝ๋์ ์ ๊ณตํ ํ๊ฒฝ ์ ๋ณด**๋ค์ ๋ชจ์๋์ ๊ฐ์ฒด์ด๋ค. ## ์คํ(Stack)๊ณผ ํ(Queue) ### ์คํ(Stack) ์คํ์ **ํ๋ง๊ธ์ค**๋ฅผ ์๊ฐํ๋ฉด ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋งจ ์๋๋ถํฐ a,
This ์ํฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ this this๋ ํจ์๋ฅผ ํธ์ถํ ๋ ๊ฒฐ์ ๋๊ณ ๊ทธ๋์ ์ด๋ค ๋ฐฉ์์ผ๋ก ํธ์ถํ๋๋์ ๋ฐ๋ผ ๊ฐ์ด ๋ฌ๋ผ์ง๋ค. ์ ์ญ ๊ณต๊ฐ์์์ this ์ ์ญ ๊ณต๊ฐ์์ this๋ ์ ์ญ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์๋ ์ ์ญ ๊ฐ์ฒด๊ฐ window์ด๊ณ Node.js
์ด๋ค ์์ฑ์ ํจ์(Constructor)๋ฅผ new ์ฐ์ฐ์์ ํจ๊ป ํธ์ถํ๋ค.Constructor์์ ์ ์๋ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์๋ก์ด ์ธ์คํด์ค(instance)๊ฐ ์์ฑ๋๋ค.์ด๋ instance์๋ \_\_proto\_\_ ๋ผ๋ ํ๋กํผํฐ๊ฐ ์๋์ผ๋ก ๋ถ์ฌ๋๋ค.์ด ํ๋กํผํฐ๋ Co
์ฝ๋ฐฑ ํจ์๋ ๋ค๋ฅธ ์ฝ๋์๊ฒ ์ธ์๋ก ๋๊ฒจ์ค์ผ๋ก์จ ๊ทธ ์ ์ด๊ถ๋ ํจ๊ป ์์ํ ํจ์์ด๋ค.timer ๋ณ์์๋ setInerval์ ID ๊ฐ์ด ๋ด๊ธด๋ค. setINterval์ ์ ๋ฌํ ์ฒซ ๋ฒ์งธ ์ธ์์ธ cbFunc ํจ์(์ด ํจ์๊ฐ ๊ณง ์ฝ๋ฐฑ ํจ์์ด๋ค)๋ 0.3์ด๋ง๋ค ์๋์ผ๋ก ์คํ๋ ๊ฒ
ํด๋ก์ (Closure)๋ ์ฌ๋ฌ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฑ์ฅํ๋ ๋ณดํธ์ ์ธ ํน์ฑ์ด๊ณ ์ด๋ค ํจ์ A์์ ์ ์ธํ ๋ณ์ a๋ฅผ ์ฐธ์กฐํ๋ ๋ด๋ถํจ์ B๋ฅผ ์ธ๋ถ๋ก ์ ๋ฌํ ๊ฒฝ์ฐ A์ ์คํ ์ปจํ ์คํธ๊ฐ ์ข ๋ฃ๋ ์ดํ์๋ ๋ณ์ a๊ฐ ์ฌ๋ผ์ง์ง ์๋ ํ์์ ๋งํ๋ค.6๋ฒ์งธ ์ค์์ inner ํจ์
# ํด๋์ค ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ๋ ์ด ์กด์ฌํ์ง ์์๋ค. ํ์ง๋ง ํด๋์ค ๊ธฐ๋ฐ์ ๋ค๋ฅธ ์ธ์ด์ ์ต์ํ ๋ง์ ๊ฐ๋ฐ์๋ค์ ํผ๋, ํด๋์ค์ ๋น์ทํ๊ฒ ๋์ํ๊ฒ๋ ํ๋ด ๋ด๋ ๊ธฐ๋ฒ์ด ํ์ํ๋ ๋ฑ ์ด๋ฌํ ๋์ฆ์ ๋ฐ๋ผ ES6์ ํด๋์ค ๋ฌธ๋ฒ์ด ์ถ๊ฐ๋์๋ค.
ES5๊น์ง์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ var๋ฅผ ์ด์ฉํด์ ๋ณ์๋ฅผ ์ ์ํ๊ณ ๊ทธ๊ฒ ์ ์ผํ ๋ฐฉ๋ฐฉ๋ฒ์ด์๋ค. ES6์์๋ const์ let์ ์ด์ฉํ๋ ์๋ก์ด ๋ณ์ ์ ์ ๋ฐฉ๋ฒ์ด ์๊ฒผ๊ณ var๊ฐ ์๊ณ ์๋ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ์๋ค.var์ ๊ฒฝ์ฐ ์ ์๋ ๋ณ์๊ฐ ํจ์ ์ค์ฝํ๋ฅผ ๊ฐ์ง๋ค. ์ค์ฝํ(sc
๋จ์ถ ์์ฑ๋ช ์ ๊ฐ์ฒด ๋ฆฌํฐ๋ด ์ฝ๋๋ฅผ ๊ฐํธํ๊ฒ ์์ฑํ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ง ๋ฌธ๋ฒ์ด๋ค.๊ฐ์ฒด์ ์์ฑ๊ฐ ์ผ๋ถ๊ฐ ์ด๋ฏธ ๋ณ์๋ก ์กด์ฌํ๋ฉด ๊ฐ๋จํ๊ฒ ๋ณ์ ์ด๋ฆ๋ง ์ ์ด์ฃผ๋ฉด ๋๋ค.๊ณ์ฐ๋ ์์ฑ๋ช ์ ๊ฐ์ฒด์ ์์ฑ๋ช ์ ๋์ ์ผ๋ก ๊ฒฐ์ ํ๊ธฐ ์ํด ๋์จ ๋ฌธ๋ฒ์ด๋ค.\[] ์์ ๋ณ์, ๊ณ์ฐ์ ๋ฑ์ ์ด์ฉํด ์์ฑ
๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ promise ํ๋ก๋ฏธ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋ ๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค. ์ฝ๋ฐฑ ํจํด์ ๋ฌธ์ ES6์ ํ๋ก๋ฏธ์ค๊ฐ ์ถ๊ฐ ๋๊ธฐ ์ ์๋ ์ฝ๋ฐฑ(callback) ํจํด์ ๋ง์ด ์ฌ์ฉํ์๋ค. ํ์ง๋ง ์ฝ๋ฐฑ ํจํด์ ์ฝ๋ฐฑ์ด ์กฐ๊ธ๋ง ์ค
async await๋ promise๋ฅผ ์กฐ๊ธ ๋ ์ฝ๊ณ ๊ฐ๋ ์ฑ ์ข๊ฒ ์์ฑํ๊ธฐ ์ํด ES8์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ด๋ค.async๋ฅผ ํตํด ์ ์๋ ํจ์๋ ํญ์ ํ๋ก๋ฏธ์ค๋ฅผ ๋ฐํํ๊ณ ๋ฐ๋ผ์ ํจ์ ํธ์ถ ํ then ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.async๋ ๋น๋๊ธฐ ์ฒ๋ฆฌํ ํจ์ ์๋ถ๋ถ์ await
generator ์ ๋๋ ์ดํฐ(generator)๋ ํจ์์ ์คํ์ ์ค๊ฐ์ ๋ฉ์ถ๊ณ ์ฌ๊ฐํ ์ ์๋ ๊ธฐ๋ฅ์ด๋ค. ์คํ์ ๋ฉ์ถ ๋ ๊ฐ์ ์ ๋ฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต๋ฌธ์์ ์ ๋๋ ์ดํฐ๊ฐ ์ ๋ฌํ๋ ๊ฐ์ ํ๋์ฉ ๊บผ๋ด์ ์ฌ์ฉํ ์ ์๊ณ ์ด๋ ๋ฐฐ์ด์ด ๋ฐ๋ณต๋ฌธ์์ ์ฌ์ฉ๋๋ ๋ฐฉ์๊ณผ ๊ฐ๋ค. ๊ฐ์
๋ฆฌํฐ๋ด๊ณผ ๋ณ์, ์์, ๋ฐ์ดํฐ ํ์ ๋ฆฌํฐ๋ด(literal)๊ณผ ๋ณ์(variable), ์์(const), ๋ฐ์ดํฐ ํ์ ์ ๋ํด ์์ ๋ณด์. ๋ณ์ ๋ณ์๋ ๊ฐ๋จํ ๋งํด ์ด๋ฆ์ด ๋ถ์ ๊ฐ์ผ๋ก, ์ธ์ ๋ ๋ฐ๋ ์ ์๋ค. > ๋ณ์ currentTempC๋ฅผ ์ ์ธ(ํ ๋น) ํ๊ณ ์ด๊ธฐ๊ฐ์
ํํ์(expression)์ ๊ฐ์ผ๋ก ํ๊ฐ๋ ์ ์๋ ๋ฌธ์ด๋ค.๋ ๋ฒ์งธ ํ์๋ ๋ ๊ฐ์ ํํ์์ด ์๋ค. ์ฒซ ๋ฒ์งธ ํํ์์ 3 \* 5 ๊ณฑ์ ํํ์์ด๊ณ ๋๋ฒ์งธ ํํ์์ ๊ฒฐ๊ณผ 15๋ฅผ ๋ณ์ x์ ํ ๋นํ๋ ํํ์์ด๋ค.ํํ์์ด ๊ฐ์ด ๋๋ ๊ฒ์ด๋ผ๋ฉด ์ฐ์ฐ์๋ ๊ฐ์ ๋ง๋๋ ํ๋์ด๋ผ๋
ํจ์๋ ํ๋์ ๋จ์๋ก ์คํ๋๋ ๋ฌธ์ ์งํฉ์ด๋ค.๋ชจ๋ ํจ์์๋ ๋ฐ๋๊ฐ ์๊ณ ๋ฐ๋๋ ํจ์๋ฅผ ๊ตฌ์ฑํ๋ ๋ฌธ์ ๋ชจ์์ด๋ค.์์ ๋ ํจ์ ์ ์ธ(function declaration)์ ํ ์์ด๊ณ sayHello๋ผ๋ ํจ์๋ฅผ ์ ์ธํ๋ค.ํจ์๋ฅผ ์ ์ธํ๊ธฐ๋ง ํด์๋ ๋ฐ๋๊ฐ ์คํ๋์ง ์๊ณ ํจ์๋ฅผ