HTMLCollection, NodeList
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/JavaScript
HTMLCollection๊ณผ NodeList๊ฐ€ ๋„๋Œ€์ฒด ๋ญ”์ง€..์ด๋ฒˆ์—๋„ gpt๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ •๋ฆฌํ•ด๋ณธ๋‹ค. 1. HTMLCollection๊ณผ NodeList ๊ณตํ†ต์ DOM ์š”์†Œ์˜ ์ง‘ํ•ฉ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค๋กœ ์š”์†Œ ์ ‘๊ทผ ๊ฐ€๋Šฅ`length` ํ”„๋กœํผํ‹ฐ๋กœ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ ํ™•์ธ ๊ฐ€๋Šฅ2. HTMLCollection๊ณผ NodeList ์ฐจ์ด์ ๊ตฌ๋ถ„HTMLCollectionNodeList์ƒ์„ฑ ๋ฉ”์„œ๋“œ`getElementsByClassName()``getElementsByTagName()``document.forms``form.elements``document.image``document.links``document.anchors``querySelectAll()``childNodes`Live ์—ฌ๋ถ€O (DOM ๋ณ€๊ฒฝ ์‹œ ์ž๋™ ์—…๋ฐ์ดํŠธ)X ๋Œ€๋ถ€๋ถ„ S..
์ปฌ๋ ‰์…˜(Collection)์ด๋ž€?
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/JavaScript
์ปฌ๋ ‰์…˜์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DOM์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ณ„์† ๋ณด๋Š” ๋‹จ์–ด์˜€๋Š”๋ฐ ์™€๋‹ฟ์ง€ ์•Š์•˜๋‹ค.gpt ๋„์›€์œผ๋กœ ์ดํ•ด๊ฐ€ ๋˜์–ด ๊ธฐ๋ก์šฉ์œผ๋กœ ์ ์–ด๋ณธ๋‹ค.์ •๋ง ์–•์€ ์ง€์‹์ด๋‹ˆ ๋” ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€๊ณ  ์‹ถ์œผ๋ฉด ์žฌ์„œ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค๐Ÿ˜‚ https://ko.javascript.info/searching-elements-dom ์—์„œ์™œ documnet.getElementsByTagName('input').value = 5; ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์„๊นŒ? ์— ๋Œ€ํ•ด์„œ ์งˆ๋ฌธ์„ ์‹œ์ž‘ํ–ˆ๋‹ค. 1. document.getElementsByTagName('input') ์ด๋ž€์ด ์ฝ”๋“œ๋Š” HTML ๋ฌธ์„œ ์ „์ฒด์—์„œ ํƒœ๊ทธ๋ฅผ ๋ชจ๋‘ ์ฐพ์•„์ค€๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์€ HTML ์žˆ๋‹ค๊ณ  ๊ฐ€์ •. ์ด๋•Œlet inputs = document.getElementsByTagName('input');in..
[JavaScript] ๋น„๊ตฌ์กฐํ™”(๊ตฌ์กฐ๋ถ„ํ•ด) ํ• ๋‹น
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/JavaScript
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
[JavaScript] e.target , e.currentTarget
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/JavaScript
e.target , e.curentTarget ์ฐจ์ด์  ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด, e.target :: ์‹ค์ œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์š”์†Œ (๋‚˜๋งŒ ์ด๋ฒคํŠธ ๋ฐœ์ƒ) e.currentTarget :: ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๊ฐ€ ๋‹ฌ๋ฆฐ ์š”์†Œ (์ž์‹ ํด๋ฆญํ•ด๋„ ๋ถ€๋ชจ๋„ ์ด๋ฒคํŠธ ์œ„์ž„) outer inner button const outer = document.getElementById('outer'); const inner = document.getElementById('inner'); const button = document.getElementById('button'); function printLog(e) { const { target, e.currentTarget } = e; console.log(`target: ${target.id}, ..
[JavaScript] ์ฐธ์กฐ์— ์˜ํ•œ ๊ฐ์ฒด ๋ณต์‚ฌ
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/JavaScript
์ฐธ์กฐ์— ์˜ํ•œ ๊ฐ์ฒด๋ณต์‚ฌ ๊ฐ์ฒด์™€ ์›์‹œํƒ€์ž…์˜ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด ์ค‘ ํ•˜๋‚˜๋Š” ๊ฐ์ฒด๋Š” '์ฐธ์กฐ์— ์˜ํ•ด(by reference)' ์ €์žฅ๋˜๊ณ  ๋ณต์‚ฌ๋œ๋‹ค. ์›์‹œ๊ฐ’(๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฐ ๊ฐ’)์€ '๊ฐ’ ๊ทธ๋Œ€๋กœ' ์ €์žฅ·ํ• ๋‹น๋˜๊ณ  ๋ณต์‚ฌ๋œ๋‹ค. let message = 'Hello'; let cloneMessage = message; cloneMessage = 'CloneHello'; console.log(message, cloneMessage); // Hello CloneHello ๊ฐ์ฒด๊ฐ€ ํ• ๋‹น๋œ ๋ณ€์ˆ˜๋ฅผ ๋ณต์‚ฌํ•˜๋ฉด ๋™์ผํ•œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ ๊ฐ’์ด ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์ง„๋‹ค. let user = { name: 'John'; } let admin = user; admin.name = ..
[JavaScript] ๊ฐ์ฒด
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/JavaScript
์ƒ์ˆ˜๊ฐ์ฒด const๋กœ ์„ ์–ธ๋œ ๊ฐ์ฒด๋Š” ์ˆ˜์ • ๋  ์ˆ˜ ์žˆ๋‹ค. const user = { name: 'John' }; user.name = 'Pete'; console.log(user.name); // Pete const๋Š” ํ•œ ๋ฒˆ์ด๋ผ๋„ ๊ฐ’์„ ํ• ๋‹นํ•œ ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฑธ ๋ง‰๋Š”๋‹ค. ๋ณ€์ˆ˜ user๋Š” ๊ฐ์ฒด ์ฐธ์กฐ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š”๋ฐ, const๋Š” ์ด ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š”๊ฑธ ๋ง‰๋Š” ๊ฒƒ์ด์ง€, ๊ฐ์ฒด์˜ ๋‚ด์šฉ (ํ”„๋กœํผํ‹ฐ)์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฑด ๋ง‰์ง€์•Š๋Š”๋‹ค. ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ์•ˆ์˜ ํ”„๋กœํผํ‹ฐ ํ‚ค๊ฐ€ ๋Œ€๊ด„ํ˜ธ๋กœ ๋‘˜๋Ÿฌ์‹ธ์—ฌ ์žˆ์„ ๊ฒฝ์šฐ, ์ด๋ฅผ ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ (computed propery) ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. let fruit = prompt('์–ด๋–ค ๊ณผ์ผ์„ ๊ตฌ๋งคํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?', 'appl..
[JavaScript] nullish ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ??
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/JavaScript
nullish ๋ณ‘ํ•ฉ์—ฐ์‚ฐ์ž ?? ์ตœ๊ทผ์— ์ถ”๊ฐ€๋จ. ์ŠคํŽ™์— ์ถ”๊ฐ€๋œ์ง€ ์–ผ๋งˆ์•ˆ๋œ ๋ฌธ๋ฒ•. ๊ตฌ์‹ ๋ธŒ๋ผ์šฐ์ €๋Š” ํด๋ฆฌํ•„์ด ํ•„์š”ํ•˜๋‹ค. nullsh ๋ณ‘ํ•ฉ์—ฐ์‚ฐ์ž(nullish coalescing operator) ??๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์งง์€ ๋ฌธ๋ฒ•์œผ๋กœ ์—ฌ๋Ÿฌ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ๊ทธ ๊ฐ’์ด ํ™•์ •๋˜์–ด ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. a ?? b ์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. a๊ฐ€ null๋„ ์•„๋‹ˆ๊ณ  undefined๋„ ์•„๋‹ˆ๋ฉด a ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ b nullish ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ??์—†์ด x = a ?? b์™€ ๋™์ผํ•œ ๋™์ž‘์„ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. x = (a !== null && a !== undefined) ? a : b; ??์™€ ||์˜ ์ฐจ์ด ||๋Š” ์ฒซ ๋ฒˆ์งธ truthy๊ฐ’์„ ๋ฐ˜ํ™˜. ??๋Š” ์ฒซ ๋ฒˆ์งธ ์ •์˜๋œ(defined) ๊ฐ’์„ ๋ฐ˜ํ™˜. null๊ณผ un..
[JavaScript] return์ด ํ•˜๋Š” ์ผ
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/JavaScript
๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ. ์ง€์—ญ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์•„๋Š”๋ฐ ์‚ฌ์šฉ. ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ํ•จ์ˆ˜๋ฅผ ์ค‘์ง€(escape). 1. ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ + 2. ์ง€์—ญ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์•„๋Š”๋ฐ ์‚ฌ์šฉ. [์˜ˆ์ œ1] var test = function() { var x = 1; } test(); console.log(test()); // undefined ์œ„์˜ ํ•จ์ˆ˜๋Š” ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค. ๋‚ด๋ถ€ ๊ตฌ๋ฌธ๋“ค์„ ์‹คํ–‰(test())ํ•˜์˜€์œผ๋‚˜ ๋ฐ˜ํ™˜ํ•  ๊ฐ’์ด ์„ ์–ธ๋˜์ง€ ์•Š์•˜๋‹ค. x๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„  return์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค. var test = function() { var x = 1; return x; } var test2 = test(); console.log(test2); test() ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๊ฒฝ์šฐ ํ•ด๋‹นํ•จ์ˆ˜๋Š” 1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ..