๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

WEB/JavaScript4

๋„ˆ setTimeout, setInterval ๋กœ ์‹œ๊ฐ„ ๋ณด์žฅํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์–ด? ์–ด๋–ป๊ฒŒ? ํƒ€์ด๋จธ๋ฅผ ๊ตฌํ˜„ํ•˜๋‹ค๊ฐ€ ๋ฌธ๋“ ๊ทธ๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์•„๋ฌด ์ƒ๊ฐ ์—†์ด setTimeout ๊ณผ setInterval์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์–˜๋„ค๋Š” ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”๊ฑฐ์ง€? ์–˜๋„ค๋ฅผ ๋ฏฟ๊ณ  ์จ๋„๋˜๋Š”๊ฑด๊ฐ€? ๊ณผ์—ฐ setTimeout๊ณผ setInterval์ด ์‹œ๊ฐ„์„ ๋ณด์žฅํ•ด์ฃผ๋Š” ๊ฒŒ ๋งž๋‚˜? ๊ทธ๋ž˜์„œ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋๋‹ค. ๐Ÿ‘€TL; DR setTimeout, setInterval์˜ ์ฐจ์ด์  ์ง€์—ฐ ๊ฐ„๊ฒฉ์ด ๋ณด์žฅ๋˜๋‚˜? ์‹œ๊ฐ„์„ ์ธก์ •ํ•ด์•ผ๋˜๋Š” ํƒ€์ด๋จธ๋ผ๋ฉด Date๊ฐ€ ํ•ด๊ฒฐ์ฑ…์ด ๋ ์ˆ˜๋„..? setTimeout ์ง€์ •ํ•ด์ค€ ์‹œ๊ฐ„์ด ์ง€๋‚œ ํ›„์— 1ํšŒ ํŠน์ • ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋น„๋™๊ธฐ ํ•จ์ˆ˜ setTimeout์ด ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” JS์—”์ง„์ด ์•„๋‹ˆ๋ผ WebAPI์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด์„œ ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ์ธ JS์—์„œ ๋น„๋™๊ธฐ์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋œ๋‹ค. setInterval ์ง€์ •ํ•ด.. 2024. 1. 16.
[JavaScript] map ํ•จ์ˆ˜ ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋‹ˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ๋ถ€์กฑํ•œ ์ ์„ ๋งŽ์ด ๋Š๊ปด ์ž์„ธํžˆ ๊ณต๋ถ€ํ•˜๊ธฐ๋กœ ๋งˆ์Œ๋จน์—ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ ์•Œ๊ณ ์žˆ์–ด์•ผ ๋ฆฌ์•กํŠธ๋ฅผ ํ•˜๋Š”๋ฐ๋„ ์˜จ์ „ํžˆ ๋‚ด๊ฒƒ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์ฝ”๋“œ์—์„œ ๋‚ด๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ–ˆ๋˜ ํ•จ์ˆ˜๋“ค ์œ„์ฃผ๋กœ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ ํ•œ๋‹ค. ์˜ค๋Š˜์€ mapํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ด ๊ธ€์€ MDN ๊ณผ ์ œ๋กœ์ดˆ๋‹˜์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. map ํ•จ์ˆ˜ ๋ฐฐ์—ด.map((์š”์†Œ, ์ธ๋ฑ์Šค, ๋ฐฐ์—ด) => { return ์š”์†Œ }); arr.map(callback(currentValue[, index[, array]])[, thisArg]) mapํ•จ์ˆ˜๋Š” ์œ„์™€๊ฐ™์€ ๊ตฌ๋ฌธ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‘๊ฐ€์ง€ ๊ตฌ๋ฌธํ‘œํ˜„๋ฐฉ๋ฒ•์€ ๋‚˜๋Š” ์•„๋ž˜์˜ ํ‘œํ˜„๋ณด๋‹ค๋Š” ์œ„์˜ ํ‘œํ˜„์ด ๋” ์™€๋‹ฟ์•˜๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๋ฐฐ์—ด .. 2021. 2. 1.
[JavaScript] filter() ๐Ÿ“–๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ๐Ÿ“–์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฐ˜๋ณต์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋ฐฐ์—ด ๊ฐ์ฒด์˜ ๋‚ด์žฅํ•จ์ˆ˜๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ, ์ด๋ฅผ ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค. ๋ฆฌ๋‹ค๊ธฐ์—์„œ filter()๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ•„ํ„ฐํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. const onRemove = id => { const nextNames = name.filter(name => name.id !== id); setNames(nextNames); }; ์ด ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ๋œ id๋ฅผ ๋ฐ›์•„์„œ ๊ทธ id์™€ ๋‹ค๋ฅธ ์ฆ‰, ํ•ด๋‹น๋œ id๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ id์— ํ•ด๋‹น๋˜๋Š” name๋“ค์„ ๋ชจ์•„๋†“์€ ๋ฐฐ์—ด์ด nextNames๊ฐ€ ๋˜๋Š”๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๊ณ ๋‚˜์„œ setNames(nextNames)๋ฅผ ํ†ตํ•ด์„œ names๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š”๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ์—ฌ๊ธฐ์„œ fi.. 2021. 1. 24.
[JavaScript] push() & concat() ์˜ค๋Š˜์€ ๋ฆฌ์•กํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ๋ฏธ๋ค„๋†“์•˜๋˜ ๊ถ๊ธˆ์ฆ์„ ํ’€์–ด๋ณด์•˜๋‹ค. ๐Ÿ“–๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ๐Ÿ“–์˜ 6์žฅ์—์„œ ๋‚ด์žฅํ•จ์ˆ˜์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ์žˆ์—ˆ๋Š”๋ฐ, ๊ฑฐ๊ธฐ์— concat, filter์™€ ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ concat ํ•จ์ˆ˜๋ฅผ ์ฐพ์•„๋ณด๋‹ค๋ณด๋‹ˆ pushํ•จ์ˆ˜์™€ ๋น„๊ต๊ฐ€ ๋งŽ์ด ๋˜๊ธธ๋ž˜ ๊ฐ™์ด ๊ณต๋ถ€ํ•ด๋ณด์•˜๋‹ค. ์ด ๋‘ ํ•จ์ˆ˜๋“ค์€ ๋ฐฐ์—ด์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ๋Ÿผ ๊ทธ ์‚ฌ์ด์—์„œ ๋‘ ํ•จ์ˆ˜์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ? ๋จผ์ €, push ํ•จ์ˆ˜๋ฅผ ์•Œ์•„๋ณด๊ณ , concatํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ๋‹ค. ์™œ ๋‘ ํ•จ์ˆ˜๋ฅผ ๊ฐ™์ด ๋น„๊ตํ•˜๋Š”๊ฒƒ์ธ๊ฐ€? ๊ทธ ์ด์œ ๋Š” ๋‘ ๊ฐœ์˜ ๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ํ•ฉ์น  ๋•Œ, ์ผ์–ด๋‚˜๋Š”๋ฐ ํ•˜๋‚˜์˜ ์›์†Œ๋ฅผ ๋ฐ€์–ด๋„ฃ๋Š” push ๋Œ€์‹ ์— concat์„ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ๋‘ ํ•จ์ˆ˜๋ฅผ ๊ฐ™์ด ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๊ธ€์€ MDN์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€๋‹ค. push() push๋Š” ๊ธฐ์กด.. 2021. 1. 20.
๋ฐ˜์‘ํ˜•