์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- React
- ์ฝ๋ฉํ ์คํธ
- ๋ธ๋ฃจํธํฌ์ค
- ์ฝ๋ ํฌ๋ฉง
- ๋ฆฌ๋์ค ํดํท
- ๋ถ์คํธ์บ ํ์น๋ชจ๋ฐ์ผ
- Redux toolkit
- JavaScript
- router v6
- custom hook
- ์ฝํ
- ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ๊ณผ์ ํ ์คํธ
- svgํ์ผ ๋ค๋ฃจ๊ธฐ
- ์นด์นด์ค์ฑ์ฉ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ฐฑ์ค
- ๋ถ์คํธ์ปจํผ๋ฐ์ค
- ๋์ ๊ณํ๋ฒ
- js
- Node.js
- ์ด๋ฏธ์ง ์์
- ์๊ณ ๋ฆฌ์ฆ
- ์นด์นด์ค
- DP
- icecandidate
- ๋๋๊ทธ ์ด๋ฒคํธ
- ํ๋ก๊ทธ๋๋จธ์ค
- TypeScript
- ์ด๋ถํ์
- Today
- Total
๋ชฉ๋กjavascript (13)
๐ฅ dev-ruby
์ด๋ฒ์ ์ฐํ ์บ 5๊ธฐ 2์ฐจ ๊ณผ์ ํ ์คํธ๋ฅผ ์ค๋นํ๊ธฐ ์ํด ํ๋ก๊ทธ๋๋จธ์ค์ ๊ณ ์์ด ์ฌ์ง์ฒฉ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ผ๋ ๊ณผ์ ํ ์คํธ๋ฅผ ํ์ด๋ณด์๋ค. ์ง๋๋ฒ์ ๊ณ ์์ด ์ฌ์ง ๊ฒ์ํ๊ธฐ๋ฅผ ํ์๋๋ฐ ๊ทธ๋ ๋ฐ๋๋ผJS๊ฐ ์ฒ์์ด๋ผ ์ง์ง ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๊ณ ์ด๊ฒ์ ๊ฒ ๋ค์ง๋ฉด์ ๊ตฌํํ๋๋ ๋จธ๋ฆฌ์ ๋จ์์๋๊ฒ ์๋ค.. ๋ฐ๋๋ผ JS์์ฒด๊ฐ ๋๋ฌด ์ฌ๋ฏธ์์ด์ ๊พธ์ญ๊พธ์ญ ํด์ ๊ทธ๋ฐ๊ฒ๋ ์๋ ๊ฒ ๊ฐ๋ค ใ ๋ญ ์จ๋ ์๋ก ์ ์ด๋งํ๊ณ , ์ด๋ฒ ํฌ์คํ ์์๋ ๊ณผ์ ํ ์คํธ๋ฅผ ๋ฑ ์ด์์ ๋ ์๋ฌด๊ฒ๋ ์๋ ์ ํ์ผ์ ์ด๋ป๊ฒ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํด๋๊ฐ๋ฉด ๋ ์ง ์์๋ณผ ๊ฒ์ด๋ค. ๋จผ์ ์ฒ์์ index.html์ด ์์ ๊ฒ์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌํํ๋ฉด์ ํด๋น ํ์ผ์์ ์์๊ฐ ๊ณ์ ์ถ๊ฐ ๋ ๊ฒ์ด๋ค. htmlํ์ผ์์ ํ ์ผ์ jsํ์ผ์ ์ฐ๊ฒฐํด์ฃผ๋ฉด ๋๋ค. ๊ณ ์์ด ์ฌ์ง์ฒฉ scriptํ๊ทธ๋ ์์ ๋ฃ์ด๋, ์..
์ด๋ Element์๋ data-๋ก ์์ํ๋ ์์ฑ์ ์ฌ์ฉํ ์ ์๋ค. ํ๋ฉด์๋ ๋ ๋๋ง ๋์ง ์๊ฒ ์ ๋ณด๋ฅผ ์๋ฆฌ๋จผํธ์ ๋ด์๋์ ์ ์๋ค. ์ฌ์ฉ๋ฒ ... Javascript์์ ์ ๊ทผํ๊ธฐ ์๋ฐ์คํฌ๋ฆฝํธ์์ dataset๊ฐ์ฒด๋ฅผ ํตํด์ data์์ฑ์ ๊ฐ์ ธ์ฌ ์ ์๋ค. ์ด๋ ์ ๋์ฌ์ธ data-๊ฐ ์ ๊ฑฐ๋๊ณ , ๋ชจ๋ ๋๋ฌธ์๋ ์๋ฌธ์๋ก ๋ณํ๋๋ค. ๊ทธ๋ฆฌ๊ณ data-๋ค์์ ์ค๋ ์์ฑ๋ช ์ -(dash)๋ฅผ ์ ๊ฑฐํ๊ณ camelCase๋ก ๋ณํ๋๋ค. ์๋ฅผ ๋ค๋ฉด, data-node-id -> nodeId ๋ก ๋ณํ. ๋ฐ๋ผ์, ์๋์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. const { nodeId } = e.target.dataset; e.target.dataset.nodeId; e.target.dataset['nodeId']; in ์ฐ์ฐ์๋ก ํด๋น ์์ฑ์ด ์กด์ฌ..
ํ๋ก๊ทธ๋๋จธ์ค ๊ณ ์์ด ์ฌ์ง์ฒฉ ๊ณผ์ ๋ฅผ ๊ตฌํํ๋ ์ค ์์ ๊ฐ์ ์๋ฌ๋ฅผ ๋ง๋ฌ๋ค. ๋จผ์ html์ ์๋์ ๊ฐ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๊ฒฐํด์คฌ๋ค. export, import๋ฅผ ์ฌ์ฉ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ type="module"์ด ํ์ํ๋ค. index.js import App from "./App"; new App(document.querySelector(".App")); importํด์ค ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ jsํ์ผ๋ค์ html์ ์ฐ๊ฒฐํด์ฃผ์ง ์์๋ ๋๋ค. index.js์์ App์ import ํ querySelector๋ก ์ฑ์ ์ ๋ฌํด์คฌ๋๋ฐ..! ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฌ ๊ฒ์ด๋ค. App์ด๋ผ๋ ํ์ผ์ ์ฐพ์ ์ ์๋๋ณด๋ค. net::ERR_ABORTED 404 (Not Found) ๋ ์คํฌ๋ฆฝํธ ํ๊ทธ์ ์์์ ๋ฌธ์ ๊ฐ ์๋ ํ๋๋.. ํ์ผ..
reduce ํ์ฉํ๊ธฐ const adj = []; const difIdx = [...el].reduce((acc, curr, idx) => curr !== word[idx] ? acc += 1 : acc, 0); if(difIdx === 1) adj.push(el); ๊ฐ๋จํ๊ฒ for๋ฌธ์ ๋๋ ค์ ์นด์ดํธ๋ฅผ ์ฆ๊ฐ์ํค๋ฉด ๋น๊ตํ๊ณ ์ ํ๋ ๋ฌธ์์ด๊ณผ ๋ช๊ฐ์ ๋ฌธ์๊ฐ ๋ค๋ฅธ์ง ์ ์ ์์ง๋ง, reduce๋ฅผ ํ์ฉํ ์๋ ์๋ค! ์์ ์์์์ ๋ณด๋ฉด, difIdx ๋ ๋ค๋ฅธ ๋ฌธ์์ ๊ฐ์๊ฐ ์ ์ฅ๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด, word = 'apple', el = 'appel'์ผ ๊ฒฝ์ฐ ๋ค์ 2๋ฌธ์๊ฐ ๋ค๋ฅด๋ฏ๋ก difIdx = 2๊ฐ ๋๋ค.
for...in ๋ฌธ, for...of ๋ฌธ for...in for...in ๋ฌธ์ ๊ฐ์ฒด์ key๋ฅผ ํ๋์ฉ ๊ฐ์ ธ์จ๋ค. const obj = { key1: 'value1', key2: 'value2', key3: 'value3', } for (const key in obj) { console.log(obj[key]); } // value1 // value2 // value3 for...of for...of ๋ฌธ์ iterableํ ์์ฑ์ ์ง๋ String, Array, TypedArray, Map, Set์์ ๊ฐ์ ํ๋์ฉ ๊ฐ์ ธ์จ๋ค. ๊ฐ์ฒด๋ iterable์ด ์๋๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Object.keys(object) ํน์ Object.values(object)๋ฅผ ํตํด ๋ฐฐ์ด๋ก ๋ฐ๊ฟ์ ๊ฐ์ ๊ฐ์ ธ..
replace() ๋ฉ์๋ : ์ด๋ค ํจํด์ ์ผ์นํ๋ ์ผ๋ถ ๋๋ ์ ์ฒด ๋ถ๋ถ์ ๊ต์ฒด๋ ์๋ก์ด ๋ฌธ์์ด๋ก ๋ฐํ ๊ตฌ๋ฌธ const newStr = str.replace(์ ๊ท์ | ๋ฌธ์์ด, ๋์ฒดํ ๋ฌธ์์ด | function) ๋งค๊ฐ๋ณ์ regexp (pattern) ์ ๊ท์(RegExp) ๊ฐ์ฒด ๋๋ ๋ฆฌํฐ๋ด. ์ผ์นํ๋ ํญ๋ชฉ์ newSubStr ๋๋ ์ง์ ๋ ํจ์(function)๊ฐ ๋ฐํ ํ ๊ฐ์ผ๋ก ๋์ฒด๋๋ค. substr (pattern) ๋์ฒดํ๊ณ ์ถ์ ๋ฌธ์์ด. ์ ๊ท์์ด ์๋ ๊ธ์ ๊ทธ๋๋ก์ ๋ฌธ์์ด๋ก ์ฒ๋ฆฌ๋๋ค. ์ค์ง ์ฒซ ๋ฒ์งธ ์ผ์น๋๋ ๋ฌธ์์ด๋ง์ด ๊ต์ฒด๋๋ค. -> ์ ์ฒด์์ ๊ฒํ ํ๊ณ ์ถ์ผ๋ฉด ์ ๊ท์์ ์จ์ผํ๋ค. ์์) replace(/(C#)/g, 'c') : ๋ฌธ์์ด ๋ด์ ๋ชจ๋ C#์ด c๋ก ๋์ฒด๋๋ค. newSubStr (replacem..