Frontend๐ŸŽจ/JavaScript๐Ÿ’›, TypeScript๐Ÿ’™ 6

sort()์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ

์ƒ๊ฐ๋ณด๋‹ค sort()๋ฅผ ์‚ฌ์šฉํ•  ์ผ์ด ๋งŽ์€๋ฐ ์‚ฌ์šฉํ• ๋•Œ๋งˆ๋‹ค ํ—ท๊ฐˆ๋ ค์„œ ๋‹ค์‹œ ์ •๋ฆฌํ•œ๋‹ค. ๋”ฑ ๋Œ€1. sort()๋Š” 2๊ฐ€์ง€ ๋ชจ๋“œ๋กœ ์›€์ง์ธ๋‹ค์ฒซ๋ฒˆ์งธ๋Š” ๊ธฐ๋ณธ ์ •๋ ฌ ๋ชจ๋“œ๋‘๋ฒˆ์งธ๋Š” ๋น„๊ตํ•จ์ˆ˜(์ฝœ๋ฐฑ) ์ •๋ ฌ ๋ชจ๋“œ๋‚ด๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉํ•œ๊ฑด ๋น„๊ตํ•จ์ˆ˜ ์ •๋ ฌ์ด์—ˆ๋Š”๋ฐ ์ผ๋‹จ ๋‘˜ ๋‹ค ์•Œ์•„๋ณด์ž! 1๏ธโƒฃ ๊ธฐ๋ณธ ์ •๋ ฌ - ์•„๋ฌด๊ฒƒ๋„ ๋„˜๊ธฐ์ง€ ์•Š์„ ๋•Œ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๋‹ค.arr.sort();sort()์— ์•„๋ฌด ๋น„๊ต ํ•จ์ˆ˜(Comparison Function)๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์€ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜๋œ ๋’ค ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์— ๋”ฐ๋ผ ์ •๋ ฌ๋œ๋‹ค.์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๋ฌธ์ž์—ด ๋ฐฐ์—ด์—์„  ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•  ์ˆœ ์žˆ์ง€๋งŒ ์ˆซ์ž ๋ฐฐ์—ด์€ ์ด์ƒํ•˜๊ฒŒ ๋ฐฐ์—ดํ•  ์ˆ˜ ์žˆ๋‹ค. (1) ๋ฌธ์ž์—ด ๋ฐฐ์—ด๊ฐ ๋ฌธ์ž์—ด์„ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์— ๋”ฐ๋ผ ๋น„๊ตํ•˜๋ฏ€๋กœ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์ „ ์ˆœ ์ •๋ ฌ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•œ๋‹ค.const fruits =..

JavaScript ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ๊ด„ํ˜ธ ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ(+์ต๋ช… ํ•จ์ˆ˜)

์–ด๋–ค๊ฑด () => {} ์ด๋ ‡๊ฒŒ ์“ฐ๊ณ  ์–ด๋–ค๊ฑด () => ({}) ์ด๋ ‡๊ฒŒ ์“ฐ๊ณ  ์–ด๋–ค๊ฑด ({}) ์ด๋ ‡๊ฒŒ ์“ฐ๋‹ˆ ๋ญ๋ฅผ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์จ์•ผ ํ•˜๋Š”์ง€ ํ—ท๊ฐˆ๋ ค์„œ ์ •๋ฆฌํ•œ๋‹ค. 1. (์ž…๋ ฅ) => {๋ช…๋ น๋ฌธ} — ๋ธ”๋กํ˜• ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ต๋ช… ํ•จ์ˆ˜์˜ ํ˜•ํƒœ ์ค‘ ํ•˜๋‚˜๋กœ, ์ต๋ช…ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„์•ผ ํ•œ๋‹ค. ์ต๋ช… ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•  ๊ฒƒ. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ๊ฒผ๋‹ค.(๋งค๊ฐœ๋ณ€์ˆ˜(= ์ž…๋ ฅ)) => {์‹คํ–‰๋ฌธ, ๋ช…๋ น๋ฌธ}์†Œ๊ด„ํ˜ธ()์—๋Š” ์ „๋‹ฌ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ์ค‘๊ด„ํ˜ธ{}์—๋Š” ์‹คํ–‰ํ•  ์—ฌ๋Ÿฌ์ค„์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. 1๏ธโƒฃ ์ค‘๊ด„ํ˜ธ{} ์•ˆ์˜ ๋‚ด์šฉ์ด 1์ค„๋กœ ๋๋‚œ๋‹ค๋ฉด ์ค‘๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.const addOne = x => x + 1โš ๏ธ ์ฃผ์˜! ์ค‘๊ด„ํ˜ธ๋ฅผ ์“ด๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ return์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. 2๏ธโƒฃ ..

[JavaScript, TypeScript] ์œ ์‚ฌ ๋ฐฐ์—ด, ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด, Array.from()

๊ฐ ํ”„ํ•˜๋ฉด์„œ Array.from()์„ ์“ธ์ผ์ด ๊ฝค ๋งŽ์ด ์ƒ๊ฒผ๋Š”๋ฐ, ์ด๊ฑฐ ์„ค๋ช…์„ ๋“ฃ์ž๋‹ˆ ์ง„์งœ ๋ฌด์Šจ์†Œ๋ฆฐ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ์ •๋ฆฌํ•œ๋‹ค. 1. ์ •์˜Array.from()์€ '์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด๋‚˜ ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜'๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๊ทธ๋Ÿผ ์—ฌ๊ธฐ์„œ ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด์™€ ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„์•ผ ํ•œ๋‹ค. (1) ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด'์ฐจ๋ก€๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ'์„ ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด๋ผ๊ณ  ํ•œ๋‹ค.๐Ÿฌ ์ง€ํ”ผํ‹ฐ์˜ ์˜ˆ์‹œ ๐Ÿ‘ฝ๋„ค๊ฐ€ ์‚ฌํƒ•์ด 5๊ฐœ ๋“ค์–ด ์žˆ๋Š” ๋ด‰์ง€๋ฅผ ๋“ค๊ณ  ์žˆ์–ด.๋ด‰์ง€๋ฅผ ๋œฏ์–ด์„œ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ผ ์ˆ˜ ์žˆ์ง€?์ด ๋ด‰์ง€ = ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด์‚ฌํƒ• ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด๋Š” ๊ณผ์ • = ๋ฐ˜๋ณต(iteration)์ฆ‰, ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด๋Š” ‘๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ’ ๋ผ๋Š” ๋œป์ด์•ผ.๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด๋ผ ํ•˜๋ฉด๋ฌธ์ž์—ด(String) : "hel..

์ฝœ๋ฐฑ ํ•จ์ˆ˜(callback function) ์ •๋ฆฌํ•˜๊ธฐ

์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฐพ์•„๋ณด๋ฉด "๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋˜์–ด ํ•ด๋‹น ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€์—์„œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜"๋ผ๊ณ  ํ•˜๋Š”๋ฐ... ์ด๋ ‡๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ์†”์งํžˆ ์•Œ์•„๋“ฃ๋‚˜?๊ทธ๋ž˜์„œ Claude์”จ์—๊ฒŒ ๋ฌผ์–ด๋ดค๋Š”๋ฐ,"๋‚˜์ค‘์— ์‹คํ–‰ํ•ด ๋‹ฌ๋ผ๊ณ  ๋งก๊ฒจ๋†“์€ ํ•จ์ˆ˜"๋ผ๊ณ  ๊ฐ„๋‹จํžˆ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•˜๋”๋ผ. button.onclick = function(){ alert("๋ฒ„ํŠผ์ด ํด๋ฆญ๋จ!")}์—ฌ๊ธฐ์„œ alert("๋ฒ„ํŠผ์ด ํด๋ฆญ๋จ")์„ ํฌํ•จํ•œ function์ด ๋ฐ”๋กœ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ผ๊ณ ....์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋Š”, ๋ฐ”๋กœ ์ „ํ˜•์ ์ธ ๋น„๋™๊ธฐ ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜์ธ setTimeout์ด๋‹ค.setTimeout(function(){ console.log("3์ดˆ ์ง€๋‚ฌ์–ด")}, 3000)๋‚ด๊ฐ€ ํ—ท๊ฐˆ๋ฆด๊นŒ๋ด ์„ค๋ช…ํ•˜๋Š”๊ฑด๋ฐ,,,, setTimeout์€setTimeout(()=..

[JavaScript, TypeScript] map(), filter(), some()๋ฉ”์†Œ๋“œ

์˜ค๋Š˜๋„ ์‹ค๋ฌด์—์„œ ๋””์ง€๊ฒŒ ๋งŽ์ด ์“ฐ๋Š” ์„ธ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋‹ค.์…‹ ๋‹ค ๋ฐฐ์—ด๊ณผ ๊ด€๋ จ๋œ JavaScript, TypeScript๋ฉ”์†Œ๋“œ์ด๋ฏ€๋กœ ์ฐฌ์ฐฌํžˆ ์‚ดํŽด๋ณด๋„๋ก ํ•œ๋‹ค!์ฃผ์˜(?)์‚ฌํ•ญ : ๋ฐฐ์—ด ๋‚ด ๋ฌธ์ž์—ด์— ์›๋ž˜ ''๋ฅผ ์”Œ์šฐ๋Š”๊ฒŒ ์ •์„์ด์ง€๋งŒ,,, ๊ท€์ฐฎ์•„์„œ ๊ฑ ์ƒ๋žตํ–ˆ๋‹คใ…‹1. map() ๋ฉ”์†Œ๋“œ๊ธฐ๋Šฅ : ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋ณ€ํ™˜ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜์—ฌ ๋งŒ๋“ ๋‹ค.๊ฐ๊ฐ์˜ ์š”์†Œ์— ๋Œ€ํ•ด ํ•œ๋ฒˆ์”ฉ ์ˆœํšŒํ•˜๋ฉฐ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ ์šฉ → ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.map๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด์„ ์ƒˆ๋กœ์ด ๊ตฌ์„ฑํ•ด์„œ ๋˜‘๊ฐ™์€ ๊ธธ์ด๋กœ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.[์–ด๋– ํ•œ ๋ฐฐ์—ด] + ๋‚ด๊ฐ€ ์„ค์ •ํ•œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜ () = [๋‚ด๊ฐ€ ์ƒˆ๋กœ ๋งŒ๋“  ๋ฐฐ์—ด]์ •ํ™•ํ•˜์ง€ ์•Š์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋‰˜์•™์Šค์˜ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฑ‰์–ด๋‚ธ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.Vue3.0 js์—์„  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฑ‰์–ด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ์–•์€ ๋ณต์‚ฌ๊ฐ€ ๋œ๋‹ค โžก..

[JavaScript, TypeScript] ์˜ต์…”๋„ ์ฒด์ด๋‹(Optional Chaining)์ด๋ž€?

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋‘˜ ๋‹ค ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…”๋„ ์ฒด์ด๋‹...๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์—„์ฒญ ๋งŽ์ด ์“ฐ๊ฒŒ ๋˜์„œ ์•Œ๊ธฐ ์‹ซ์–ด๋„ ์•Œ ์ˆ˜๋ฐ–์— ์—†๋Š” ์ง€๊ฒฝ์— ์ด๋ฅด๋ €๋‹ค... ์˜ต์…”๋„ ์ฒด์ด๋‹๋งŒ์•ฝ ๊ฐ’์ด ์—†์œผ๋ฉด(= null ํ˜น์€ undefined๋ผ๋ฉด) ๊ทธ๋ƒฅ undefined๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ผ๋Š” ์•ˆ์ „์žฅ์น˜์ด๋‹ค. Exception์ด๋‚˜ ์—๋Ÿฌ๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋„๋ก ๋„์™€ ์˜ค๋ฅ˜ ์—†์ด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.์†์„ฑ์— ์ ‘๊ทผํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ , ํŠนํžˆ ์ค‘์ฒฉ๋œ ๊ฐ์ฒด์˜ ์†์„ฑ์— ์ ‘๊ทผํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ธ๋‹ค.๊ฐ€์žฅ ํฐ ์ด์ ์€ (1) ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ์„ ๋†’์ž„ (2) ๋ถˆํ•„์š”ํ•œ ์กฐ๊ฑด๋ฌธ์„ ์ค„์ž„ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ์ฐธ๊ณ ๋กœ ํ•„์ž๋Š” ์ธํ…”๋ฆฌ์ œ์ด์—์„œ ๋นจ๊ฐ„์ค„ ์ƒ๊ฒจ์„œ ํ•„์š”์—†์–ด๋„ ๊ทธ๋ƒฅ ์“ด๋‹ค(์ •์ƒ์ ์œผ๋กœ ์ž˜ ์ž‘๋™๋˜๋Š”๋ฐ ์™œ ๋นจ๊ฐ„์ค„์ด ๋‚˜๋Š”์ง„ ๋‚˜๋„ ๋ชจ๋ฅด๊ฒ ์Œ¯\_(ใƒ„)_/¯) ์˜ˆ์‹œ๋‚˜๋ฃจํ† ์ฟค์€ ์˜..