javascript/๐ study39 [5์ฃผ์ฐจ ์คํฐ๋]25์ฅ-ํด๋์ค ํด๋์ค ๋ฌธ๋ฒ์ ์คํ(Syntactic Sugar) ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ์ ๊ฐ์ฒด์งํฅ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค. es6์์ ๋์ ๋ ํด๋์ค๋ ํด๋์ค ๊ธฐ๋ฐ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋งค์ฐ ํก์ฌํ ๊ฐ์ฒด ์์ฑ ๋ฉ์ปค๋์ฆ์ ์ ์ํฉ๋๋ค. ์ฌ์ค ํด๋์ค๋ ๊ฐ์ฒด ์งํฅ ๋ชจ๋ธ์ ์ ๊ณตํ๋ ๊ฒ์ด ์๋ ํจ์์ด๋ฉฐ ํ๋กํ ํ์ ๊ธฐ๋ฐ ํจํด์ ํด๋์ค ๊ธฐ๋ฐ ํจํด ์ฒ๋ผ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ๋ฌธ๋ฒ์ ์คํ(Syntactic Sugar) ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. ํด๋์ค๋ ์์ฑ์ ํจ์์ ๋งค์ฐ ์ ์ฌํ๊ฒ ๋์ํ์ง๋ง ๋ช ๊ฐ์ง ์ฐจ์ด๊ฐ ์๋ค. ํด๋์ค๋ฅผ newํค์๋ ์์ด ํธ์ถ ํ๋ฉด ์๋ฌ, ์์ฑ์ ํจ์๋ ์ผ๋ฐ ํจ์๋ก ํธ์ถ๋จ ํด๋์ค๋ ์์์ ์ง์ํ๋ extends์ super ํค์๋๋ฅผ ์ ๊ณต ํด๋์ค๋ ํธ์ด์คํ ์ด ๋ฐ์ํ์ง ์๋ ๊ฒ ์ฒ๋ผ ๋์, (ํจ์๋ ํจ์ ์ ์ธ๋ฌธ ์ผ๋ก .. 2022. 3. 27. [5์ฃผ์ฐจ ์คํฐ๋]24์ฅ-ํด๋ก์ ํด๋ก์ ํด๋ก์ ๋ ํจ์์ ๊ทธ ํจ์๊ฐ ์ ์ธ๋ ๋ ์์ปฌ ํ๊ฒฝ์ ์กฐํฉ ๋ ์์ปฌ ํ๊ฒฝ์ ์ดํด const x = 1; function outerFunc() { const x = 10; innerFunc(); } function innerFunc() { console.log(x); // 1 } outerFunc(); ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ ์์ปฌ ์ค์ฝํ๋ฅผ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ์ค์ฒฉ๋ ํจ์๊ฐ ์๋๋ผ๋ฉด outerFunc ํจ์์ ๋ณ์์ ์ ๊ทผํ ์ ์๋ค. ๋ ์์ปฌ ์ค์ฝํ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํจ์๋ฅผ ์ด๋์ ํธ์ถํ๋์ง๊ฐ ์๋๋ผ ํจ์๋ฅผ ์ด๋์ ์ ์ํ๋์ง์ ๋ฐ๋ผ ์์ ์ค์ฝํ๋ฅผ ๊ฒฐ์ ํ๋ค. ์ด๋ฅผ ๋ ์์ปฌ ์ค์ฝํ(์ ์ ์ค์ฝํ)๋ผ๊ณ ํ๋ค. ์ ์ญ์์ ์ ์๋ ํจ์์ ์์ ์ค์ฝํ๋ ์ ์ญ์ด๋ค. ์คํ์ปจํ ์คํธ์ ๋ ์์ปฌ ํ๊ฒฝ์ ์์ ์ ์ธ๋ถ ๋ ์์ปฌ ํ๊ฒฝ์ ๋ํ ์ฐธ์กฐ์ ์์ .. 2022. 3. 27. [4์ฃผ์ฐจ ์คํฐ๋] 23์ฅ-์คํ ์ปจํ ์คํธ ์คํ ์ปจํ ์คํธ ์คํ ์ปจํ ์คํธ๋ฅผ ๋ฐ๋ฅด๊ฒ ์ดํด ํ๋ค๋ฉด ์ ์ ์๋ ๊ฒ๋ค ์๋ฐ์คํฌ๋ฆฝํธ์ ์ค์ฝํ ๊ธฐ๋ฐ ์๋ณ์์ ์๋ณ์ ๋ฐ์ธ๋ฉ์ ๊ด๋ฆฌํ๋ ๋ฐฉ์ ํธ์ด์คํ ์ด ๋ฐ์ํ๋ ์ด์ ํด๋ก์ ์ ๋์ ๋ฐฉ์ ํ์คํฌ ํ์ ํจ๊ป ๋์ํ๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ๋์ ๋ฐฉ์ ์์ค์ฝ๋์ ํ์ ECMAScript ์ฌ์์ ์์ค์ฝ๋๋ฅผ 4๊ฐ์ง ํ์ ์ผ๋ก ๊ตฌ๋ถ, ์ด๋ ์์คํฌ๋๋ ์คํ ์ปจํ ์คํธ๋ฅผ ์์ฑ ์ ์ญ ์ฝ๋(global code) ์ ์ญ์ ์กด์ฌํ๋ ์์ค์ฝ๋. ์ ์ญ์ ์ ์๋ ํจ์, ํด๋์ค ๋ฑ์ ๋ด๋ถ ์ฝ๋๋ ํฌํจ X ํจ์ ์ฝ๋(function code) ํจ์ ๋ด๋ถ์ ์กด์ฌํ๋ ์์ค์ฝ๋ ํจ์ ๋ด๋ถ์ ์ค์ฒฉ๋ ํจ์, ํด๋์ค ๋ฑ์ ๋ด๋ถ ์ฝ๋๋ ํฌํจ X eval ์ฝ๋(eval code) ๋นํธ์ธ ์ ์ญ ํจ์์ธ eval ํจ์์ ์ธ์๋ก ์ ๋ฌ๋์ด ์คํ๋๋ ์์ค์ฝ๋. ๋ชจ.. 2022. 2. 23. [4์ฃผ์ฐจ ์คํฐ๋] 22์ฅ- this this this์ ์ ์ this๋ ์์ ์ด ์ํ ๊ฐ์ฒด ๋๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ์๊ธฐ์ฐธ์กฐ ๋ณ์ this๋ฅผ ํตํด ์์ ์ด ์ํ ๊ฐ์ฒด ๋๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค์ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ ์ ์๋ค. this์ ํ์์ฑ ๊ฐ์ฒด๋ ํ๋กํผํฐ์ ๋ฉ์๋๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ํ๋กํผํฐ : ์ํ(state)๋ฅผ ๋ํ๋ ๋ฉ์๋ : ๋์์ ๋ํ๋ ๊ฐ์ฒด๋ ์์ ์ด ์ํ ๊ฐ์ฒด์ ์ํ๋ฅผ ์ฐธ์กฐํ๊ฑฐ๋ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊น ์์ ์ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ๋ ค๋ฉด ์ฐ์ ์์ ์ด ์ํ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์์ด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด ์์ฑ์ ํจ์ ๊ฒฝ์ฐ newํค์๋๋ก ์์ฑ์ ํจ์๋ฅผ ํธ์ถํด์ผ instance๊ฐ ์์ฑ๋๋ค. ์ฆ, ์์ฑ์ ํจ์๋ฅผ ์ ์ํ๋ ์์ ์ ์์ฑ๋ ์์ ์ธ instance๋ฅผ ๊ฐ๋ฆฌํค๋ ์๋ณ์๊ฐ ํ์ (= this).. 2022. 2. 23. [4์ฃผ์ฐจ ์คํฐ๋] 21์ฅ- ๋นํธ์ธ ๊ฐ์ฒด ๋นํธ์ธ ๊ฐ์ฒด ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ ๋ถ๋ฅ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ฒ 3๊ฐ์ ๊ฐ์ฒด๋ก ๋ถ๋ฅํ ์ ์๋ค. ํ์ค ๋นํธ์ธ๊ฐ์ฒด ํ์ค ๋นํธ์ธ ๊ฐ์ฒด๋ ECMAScript ์ฌ์์ ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ฉด, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์ ๊ณตํต ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ๊ณผ ๊ด๊ณ์์ด ์ธ์ ๋ ์ฌ์ฉ๊ฐ๋ฅ ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก์ ์ ๊ณต ๋จ ๋ฐ๋ผ์ ์ ์ญ ๋ณ์ ์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ ํธ์คํธ ๊ฐ์ฒด ํธ์คํธ ๊ฐ์ฒด๋ ECMAScript ์ฌ์์ ์ ์๋์ด ์์ง ์์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ ์คํํ๊ฒฝ (browser๋๋ Node.js)์์ ์ถ๊ฐ๋ก ์ ๊ณตํ๋ ๊ฐ์ฒด ๋ธ๋ผ์ฐ์ ํ๊ฒฝ : DOM, BOM, Canvas, XMLHttpRequest ๋ฑ์ WebAPI์ ๊ณต Node.js ํ๊ฒฝ : path, os ๋ฑ node.js ์์ ๊ณ ์ ์ API ์ ๊ณต ๊ณต์๋ฌธ์ ์ฐธ์กฐ ์ฌ์ฉ์.. 2022. 2. 23. [4์ฃผ์ฐจ ์คํฐ๋] 20์ฅ- strict mode strict mode strict mode ๋? ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋ฌธ๋ฒ์ ์ข ๋ ์๊ฒฉํ ์ ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ๋ฐ์์ํฌ ๊ฐ๋ฅ์ฑ์ด ๋๊ฑฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ต์ ํ ์์ ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์ฝ๋์ ๋ํด ๋ช ์์ ์ธ ์๋ฌ๋ฅผ ๋ฐ์์ํจ๋ค. ESLint ๊ฐ์ ๋ฆฐํธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด๋ strict ๋ชจ๋์ ์ ์ฌํ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ค. ๋ฆฐํธ ๋๊ตฌ๋ ์ ์ ๋ถ์ ๊ธฐ๋ฅ์ ํตํด ์์ค์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ ์ ์์ค์ฝ๋๋ฅผ ์ค์บํ์ฌ ๋ฌธ๋ฒ์ ์ค๋ฅ ๋ง์ด ์๋๋ผ ์ ์ฌ์ ์ค๋ฅ๊น์ง ์ฐพ์๋ด๊ณ ์ค๋ฅ์ ์์ธ์ ๋ฆฌํฌํ ํด์ฃผ๋ ๋๊ตฌ์ด๋ค. ESLint์ฌ์ฉ๋ฐฉ๋ฒ strict mode ์ ์ ์ฉ ์ ์ญ์ ์ ๋ ๋๋ ํจ์ ๋ชธ์ฒด์ ์ ๋์ 'use scritct'; ํค์๋๋ฅผ ์ถ๊ฐํ์ฌ ์ฌ์ฉ ์ ์ญ์ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ์ ์ฒด์ strict mode ์ ์ฉ 'use .. 2022. 2. 23. ์ด์ 1 2 3 4 5 6 7 ๋ค์