js
-
๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive | ์ด๋ฒคํธ [์ด๋ฒคํธ ํธ๋ค๋ฌ]TIL 2022. 5. 26. 16:12
์ฉ์ด ์ ๋ฆฌ - ์ด๋ฒคํธ ๋ฒ๋ธ๋ง(event bubbling) : ์ด๋ฒคํธ ํ๊น ์์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด, ์ต์๋จ์ ๋ถ๋ชจ ์์๊น์ง ๊ฐ๊ฐ ํ ๋น๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์๋๋ ๊ฒ. - ์ด๋ฒคํธ ์บก์ฒ๋ง(event capturing) 3๋จ๊ณ์ ์ด๋ฒคํธ ํ๋ฆ์์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ด๋ค. 1. ์บก์ฒ๋ง ๋จ๊ณ : ์ด๋ฒคํธ๊ฐ ํ์ ์์๋ก ์ ํ๋๋ ๋จ๊ณ 2. ํ๊น ๋จ๊ณ 3. ๋ฒ๋ธ๋ง ๋จ๊ณ ๊ฐ์ฅ ์ต์์ ์กฐ์์์ ์๋(ํ๊น ์์)๋ก ์ด๋ฒคํธ๊ฐ ์ ๋ฌ๋๋ ๋จ๊ณ์ด๋ค. ์ด๋ฒคํธ(Event) ๋ธ๋ผ์ฐ์ ์์ ๋ก๊ทธ์ธ ๋ฒํผ์ ํด๋ฆญํ์ ๋, ๋ค๋ก ๊ฐ๊ธฐ ๋ฒํผ์ ํด๋ฆญํ์ ๋ ๋ธ๋ผ์ฐ์ ๋ ๋ฒํผ์ ์ญํ ์ ๋ง๊ฒ ๋์์ ์ํํ๋ค. ์ฌ์ฉ์๊ฐ ์ด๋ค ์ฌ๊ฑด(๋ฒํผ ํด๋ฆญ, ๋๋ธํด๋ฆญ, enter ๋ฑ)์ ๋ฐ์์์ผฐ์ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฅผ ๊ฐ์งํ์ฌ ์ด๋ฒคํธ(๋ก๊ทธ์ธ์ ํ๋ค, ๋ค์ ํ์ด์ง๋ก ๋๊ธด๋ค ๋ฑ)๋ฅผ ๋ฐ์์ํจ..
-
๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive | #2 DOM [์์ ๋ ธ๋ ์ ํํ๊ธฐ]TIL 2022. 5. 25. 16:18
์ฉ์ด ์ ๋ฆฌ - HTMLCollection ๊ฐ์ฒด : ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด์ด๋ฉด์ ์ดํฐ๋ฌ๋ธ์ด๋ค. ์ธ๋ฑ์ค๋ฅผ ํค ๊ฐ์ผ๋ก ๊ฐ์ง๊ณ ์๊ณ , length๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ฐฐ์ด๊ณผ ๋น์ทํ๊ฒ ์๊ฒผ์ง๋ง ๊ฐ์ฒด์ด๋ค. - NodeList ๊ฐ์ฒด : ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด์ด๋ฉด์ ์ดํฐ๋ฌ๋ธ์ด๋ค. forEach ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค. ์์ ๋ ธ๋ ์ทจ๋ํ๊ธฐ DOM API(ํ๋กํผํฐ, ๋ฉ์๋)๋ฅผ ์ฌ์ฉํ์ฌ html ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ ์ผ๋จ ๋ณ๊ฒฝํ ๋ ธ๋๋ฅผ ์ ํํ ์ ์์ด์ผ ํ๋ค. Hello ์๋ฅผ ๋ค์ด div ํ๊ทธ ์์ Hello ํ ์คํธ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ div ์์ ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํ ์คํธ ๋ ธ๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค. ์ด๋ฅผ ์ํด DOM์ ์ฌ๋ฌ ๊ฐ์ง ๋ฉ์๋๋ค์ ์ ๊ณตํ๋ค. 1. id๋ฅผ ์ด์ฉํ๊ธฐ - method : document.getElementById(); - parame..
-
๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive | #1 DOM [DOM ์ด๋?]TIL 2022. 5. 25. 10:46
์ฉ์ด ์ ๋ฆฌ - ํ์ฑ(parsing) : ๋ฌธ์ฅ์ด๋, ๋ฐ์ดํฐ ๋ฌธ์์ด์ ๋ถ์ํ๊ณ ํด๋ถํ์ฌ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์๋ด๋ ๊ธฐ์ ์๋ฅผ ๋ค์ด JSON.parse(json) ๋ฉ์๋๋ ์ธ์๋ก ๋ฐ์ json์ ๋ถ์ํ๊ณ ํด๋ถํ์ฌ ๊ฐ์ฒด๋ก ๋ณํํ๋ค. const json = `{"string" : "json ๋ณํ", "result" : "true"}`; const result = JSON.parse(json); console.log(result);//{string: 'json ๋ณํ', result: 'true'} console.log(result.string); //json ๋ณํ console.log(result.result); //true -API(Application Programming Interface) : ๋ฆฌ๋ชจ์ปจ ์ญํ tv..
-
โ๏ธ TDD | Jest ์ฌ์ฉํด๋ณด๊ธฐtdd 2021. 12. 7. 19:42
Jest ์ด๊ธฐ ์ธํ Jest๋ ๊ฐ๋จํ ์๋ฐ์คํฌ๋ฆฝํธ ํ ์คํธ ํ๋ ์์ํฌ์ด๋ค. babel, typescript, node, react, angular, vue ๋ฑ์ ์ฌ์ฉํ๋ ์ฌ๋ฌ ํ๋ก์ ํธ์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค. 1. installing Jest using npm npm install --save-dev jest 2. ์์ ํ์ผ sum.js ์์ฑ //sum.js function sum(a,b){ return a + b; } module.exports = sum; 3. ํ ์คํธ ์์ ํ์ผ sum.test.js ์์ฑ ์ด ๋ __test__ ๋๋ ํ ๋ฆฌ ์์ ์๋ ํ์ผ์ด๋ test.js๋ก ๋๋๋ ํ์ผ๋ค์ ๋ชจ๋ ํ ์คํธ ํ์ผ๋ก ์ธ์ํ๋ค. const sum = require('./sum'); test('add 1 + 2 to..
-
โ๏ธ TDD | ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ, ์ ๋ ํ ์คํธ(ํ ์คํธ ์ผ์ด์ค)tdd 2020. 11. 25. 06:03
Test-driven development TDD๋ฅผ ์ค๋ช ํ๊ธฐ ์ ์, ๋จผ์ ๋๋ฒ๊น ์ ๋ํด ์์์ผ ํ๋ค. ๋๋ฒ๊น ์ ์ฝ๊ฒ ๋งํด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๊ทธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ๋ ๋๊ตฌ์ด๋ค. ๐ ๋ฒ๊ทธ๋ฅผ ์ก๋๋ค๋ ์๋ฏธ๋ก ๋ฌธ์ ์ ์์ธ์ ์ก์ ์ ์๋๋ก ๋์์ค๋ค. ๋๋ฒ๊น ์ ๋ชจ๋ฅธ๋ค๋ฉด, ์ฝ์ง์ ํ๊ณ ๋ ์์ธ์ ํ์ ํ์ง ๋ชปํ ๊ฒ์ด๋ค. ๋๋ฌธ์ ๋๋ฒ๊น ์ ๊ฐ๋ฐ์์ ๋ผ์ด๋์ ์ ์๋ ์คํฌ์ด๋ค. sum ์ด๋ผ๋ ํจ์๋ฅผ ์ ์ธํ ํ, ์คํํ์ ๋ ์๋ฌ๊ฐ ์๊ธฐ๋ ๊ฒ์ ์ ์ ์๋ค. โ ๋ฒ๊ทธ๊ฐ ์กํ ๊ฒ์ด๋ค. ๋๋ฒ๊ฑฐ๋ก ํ์ธ์ ํ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธด ์์ธ์ ํ์ธํ ์ ์๋ค. "์์ธ์ xํ์๊ฐ ๋ ๊ณณ์ด๊ตฌ๋!" ๊ทธ๋ฆฌ๊ณ console.lo๊ฐ function์ด ์๋๋ผ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ด๋ฐ ์๋ฌ๋ฅผ ์ฒ์๋ถํฐ ์ค์ผ ์ ์๋๋ก ๋์์ฃผ๋ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก TDD์ด๋ค. T..
-
๐ ๋๊ธฐ์ ๋น๋๊ธฐ | Promises, callbacks, async/await์๋ฐ์คํฌ๋ฆฝํธ 2020. 8. 10. 22:48
๋๊ธฐ(Synchronous) vs ๋น๋๊ธฐ(Asynchronous) ์นดํ ์ ์์ด๋ผ๊ณ ์๊ฐํด๋ณด์. ์๋์๊ฒ ๋ณต์ญ์ ์์ด์คํฐ๋ฅผ ์ฃผ๋ฌธ๋ฐ์๋ค. ๊ทธ๋ผ ์๋์ ๊ฐ์ด 6 ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์๋์๊ฒ ์ ๊ณตํ ์ ์๋ค. 1. ์ฃผ๋ฌธ๋ฐ๊ธฐ -> 2์ด ์์ 2. ๋ณต์ญ์ํฐ ํ์ฐ๋๋ฅผ ์ปต์ ๋ฃ๋๋ค(1 ์คํผ) -> 2์ด ์์ 3. ๋ฐ๋ปํ ๋ฌผ์ ์กฐ๊ธ ๋ถ๊ณ , ํ์ฐ๋๋ฅผ ๋ น์ฌ์ค๋ค. -> 5์ด ์์ 4. ํ์ฐ๋๊ฐ ๋ น์๋ค๋ฉด, ์ผ์์ ๋ฃ๊ณ ์ฐจ๊ฐ๊ฒ ์ ์ด์ค๋ค. -> 3์ด ์์ 5. ๋ฌผ์ ์ ๋น๋ ๋ฃ์ด์ฃผ๊ณ ์์ด์ค๋ค. -> 2์ด ์์ 6. ์๋์๊ฒ ์ ๊ณตํ๋ค. -> 2์ด ์์ ๋๊ธฐ์ ์คํ(synchronous system) ์ ํ๋์ ํ ์คํฌ ์คํ์ด ์๋ฃ๋ ๋๊น์ง ๋ค๋ฅธ ํ ์คํฌ๋ค์ ๋ธ๋กํน(์์ ์ค๋จ) ๋๋ ๋ฐฉ์์ด๋ค. 1๋ช ์ ์๋์๊ฒ ์๋ฃ๋ฅผ ์ ๊ณตํ๊ธฐ ์ ๊น์ง ๋ค๋ฅธ ์๋์ ..