๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?

Language/JavaScript28

[JavaScript] ๋งˆ์šฐ์Šค ๋ฐ ํœ  ์ด๋ฒคํŠธ (onMouseEnter, onMouseLeave, onWheel) [JavaScript] ๋งˆ์šฐ์Šค ๋ฐ ํœ  ์ด๋ฒคํŠธ (onMouseEnter, onMouseLeave, onWheel)ํšŒ์‚ฌ ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ ํ•˜๋ฉด์„œ ํšŒ์‚ฌ ์ž์ฒด ์ปดํฌ๋„ŒํŠธ ํˆดํŒ ์ŠคํŽ™๋•Œ๋ฌธ์—,๋งˆ์šฐ์Šค๊ฐ€ ํ…์ŠคํŠธ ์œ„์— ์กด์žฌ ํ•˜์ง€ ์•Š์Œ์—๋„ ํœ  ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ ํˆดํŒ์ด ๊ณ„์† ๋– ์žˆ๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค. ๊ทธ๋ž˜์„œ tooltip์ด ๋– ์•ผ ํ•˜๋Š” ํ…์ŠคํŠธ์— onMouseEnter, onMouseLeave, onWheel ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. onMouseEnter ์ด๋ฒคํŠธonMouseEnter ์ด๋ฒคํŠธ๋Š” ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๊ฐ€ ํŠน์ • ์š”์†Œ์— ์ฒ˜์Œ์œผ๋กœ ๋“ค์–ด๊ฐ”์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ.์ด ์ด๋ฒคํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋ฅผ ์š”์†Œ ์œ„๋กœ ์ด๋™์‹œํ‚ฌ ๋•Œ ํŠธ๋ฆฌ๊ฑฐ ๋œ๋‹ค.onMouseEnter๋Š” ํ•ด๋‹น ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ์—๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ „ํŒŒํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ .. 2024. 5. 20.
[JavaScript] ํŒ์—… ์ฐฝ ๊ตฌํ˜„ - window.open [JavaScript] ํŒ์—… ์ฐฝ ๊ตฌํ˜„ - window.openํ”„๋กœ์ ํŠธ์—์„œ ๊ธฐํš ๋ช…์„ธ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋…๋ฆฝ๋œ ํŒ์—… ์ฐฝ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ๋‹ค.JavaScript์˜ window.open ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒ์—…์ฐฝ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. window.open ๋ฉ”์„œ๋“œ์ƒˆ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์ด๋‚˜ ํƒญ์„ ์—ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œwindow.open(url, windowName, [windowFeatures]);- url : ํŒ์—… ์ฐฝ์— ๋กœ๋“œํ•  ํŽ˜์ด์ง€ URL- windowName :  ํŒ์—… ์ฐฝ์˜ ์ด๋ฆ„. ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์ฐฝ์ด ์ด๋ฏธ ์—ด๋ ค์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์ฐฝ์„ ์žฌ์‚ฌ์šฉ.- windowFeatures : ํŒ์—… ์ฐฝ์˜ ํŠน์„ฑ์„ ์ •์˜ํ•˜๋Š” ๋ฌธ์ž์—ด. ์ฝ”๋“œ ์˜ˆ์‹œ์•ฝ๊ด€ ๋ณด๊ธฐ Reference Window: open() method - Web APIs | MDNThe open() m.. 2024. 5. 20.
[JavaScript] javascript ์•Œ์•„๋‘˜ ๊ฒƒ ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2023. 1. 31.
[JavaScript] LocalStorage์™€ SessionStorage Local Storage์™€ Session Storage ๐Ÿฐ ์›น ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด(web storage object)์ธ localStorage์™€ sessionStorage๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด์— ํ‚ค-๊ฐ’ ์Œ์„ ์ €์žฅ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ•˜๊ณ (sessionStorage์˜ ๊ฒฝ์šฐ) ์‹ฌ์ง€์–ด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋„(localStorage์˜ ๊ฒฝ์šฐ) ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ๋‚จ์•„ ์žˆ์Œ ์ฟ ํ‚ค ๋Œ€์‹  ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ด์œ ? ์ฟ ํ‚ค์™€ ๋‹ค๋ฅด๊ฒŒ ์›น ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด๋Š” ๋„คํŠธ์›Œํฌ ์š”์ฒญ ์‹œ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜์ง€ ์•Š์Œ ์ฟ ํ‚ค๋ณด๋‹ค ๋” ๋งŽ์€ ์ž๋ฃŒ ๋ณด๊ด€ ๊ฐ€๋Šฅ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ตœ์†Œ 2MB ํ˜น์€ ๊ทธ ์ด์ƒ์˜ ์›น ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ ๊ฐœ๋ฐœ์ž๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด ์›น ์Šคํ† ๋ฆฌ์ง€ ๊ตฌ์„ฑ ๋ฐฉ์‹์„ ์„ค์ • ์ฟ ํ‚ค์™€ ๋˜ ๋‹ค๋ฅธ ์ ์€ ์„œ๋ฒ„๊ฐ€ HTTP ํ—ค๋”๋ฅผ ํ†ตํ•ด ์Šคํ† ๋ฆฌ.. 2023. 1. 29.
[JavaScript] async / await 2 ์—๋Ÿฌ ์ฒ˜๋ฆฌ ์—๋Ÿฌ๋Š” ํ˜ธ์ถœ์ž(caller) ๋ฐฉํ–ฅ์œผ๋กœ ์ „ํŒŒ ์ฝœ ์Šคํƒ์˜ ์•„๋ž˜ ๋ฐฉํ–ฅ(์‹คํ–‰ ์ค‘์ธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ํ‘ธ์‹œ๋˜๊ธฐ ์ง์ „์— ํ‘ธ์‹œ๋œ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ๋ฐฉํ–ฅ)์œผ๋กœ ์ „ํŒŒ ํ•˜์ง€๋งŒ, ๋น„๋™๊ธฐ ํ•จ์ˆ˜์˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒƒ์€ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— try…catch๋ฌธ์„ ์‚ฌ์šฉํ•ด ์—๋Ÿฌ๋ฅผ ์บ์น˜ํ•  ์ˆ˜ ์—†์Œ try{ setTimeout(()=>{ throw new Error('Error!') },1000) } catch(e) [ cosole.log('์บ์น˜ํ•œ ์—๋Ÿฌ',e) } async/await์—์„œ๋Š” ์—๋Ÿฌ ์ฒ˜๋ฆฌ์— try...catch ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›๋Š” ๋น„๋™๊ธฐ ํ•จ์ˆ˜์™€๋Š” ๋‹ฌ๋ฆฌ ํ”„๋กœ๋ฏธ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋Š” ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜ธ์ถœ์ž๊ฐ€ ๋ช…ํ™•. const fetch = require(.. 2023. 1. 26.
[JavaScript] async / await 1 async / await ์™œ ์‚ฌ์šฉํ•  ๊นŒ? Promise ์ฒด์ด๋‹์€ ์ฝœ๋ฐฑ ์ง€์˜ฅ์„ ๋ฒ—์–ด๋‚˜๊ฒŒ ํ–ˆ์ง€๋งŒ, Promise ์ฒด์ด๋‹ ๋˜ํ•œ ๊ธธ์–ด์งˆ ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง ES2017์— ์ฒ˜์Œ์— ๋“ฑ์žฅํ•œ async, await๋Š” syntactic sugar๋กœ Promise ์‚ฌ์šฉ์„ ์ข€ ๋” ํŽธ๋ฆฌํ•˜๊ณ  ์„ธ๋ จ๋˜๊ฒŒ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌ async ํ‚ค์›Œ๋“œ๋Š” ํ•จ์ˆ˜ ์•ž์— ๋ถ™์ž„ ํ•จ์ˆ˜ ์•ž์— async ๋ถ™๊ฒŒ ๋˜๋ฉด promise๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์˜๋ฏธ async/ await ํ”„๋กœ๋ฏธ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ ํ”„๋กœ๋ฏธ์Šค์˜ then/catch/finally ํ›„์† ์ฒ˜๋ฆฌ ๋ฉ”์„œ๋“œ์— ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ํ›„์† ์ฒ˜๋ฆฌํ•  ํ•„์š” ์—†์ด ๋™๊ธฐ ์ฒ˜๋ฆฌ์ฒ˜๋Ÿผ ํ”„๋กœ๋ฏธ์Šค๋ฅผ ์‚ฌ์šฉ asyncํ•จ์ˆ˜ await ํ‚ค์›Œ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ async ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ async ํ•จ์ˆ˜๋Š” .. 2023. 1. 25.
[JavaScript] Event-onChange onChange? ์ž‘์„ฑํ•œ JS๋ฅผ ํ†ตํ•ด ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚ฌ๋Š”์ง€ ๊ฐ์ง€ input ํƒœ๊ทธ์˜ ํฌ์ปค์Šค๋ฅผ ๋ฒ—์–ด๋‚ฌ์„๋•Œ (์ฆ‰, ์ž…๋ ฅ์ด ๋๋‚ฌ์„๋•Œ) ๋ฐœ์ƒ cf.onInput() input ํƒœ๊ทธ ์•ˆ์˜ ๊ฐ’๋“ค์ด ๋ณ€๊ฒฝ ๋ ๋•Œ๋งˆ๋‹ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ React์—์„œ input์˜ onChange ํ•œ ๋ฒˆ์— ๊ด€๋ฆฌํ•˜๊ธฐ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๊ตฌํ˜„์‹œ ์—ฌ๋Ÿฌ๊ฐœ์˜ input์„ ๊ด€๋ฆฌ ์ด๋ฅผ ๋ชจ๋‘ ๋‹ค๋ฅธ state๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•ด์ง! //๊ฐ๊ฐ์˜ state๋กœ ๊ด€๋ฆฌ ์‹œ import React,{useState} from'react' export default function App(){ const [id,setId] = useState('') const [pw,setPw] = useState('') const [nickname,setNickname].. 2023. 1. 22.
[JavaScript] Event-onFocus, onBlur focus, blur? //์˜ˆ์‹œ ์ฝ”๋“œ ์ด๋ฉ”์ผ: focus ์ด๋ฒคํŠธ๋Š” ์š”์†Œ๊ฐ€ ํฌ์ปค์Šค๋ฅผ ๋ฐ›์„ ๋•Œ, blur ์ด๋ฒคํŠธ๋Š” ํฌ์ปค์Šค๋ฅผ ์žƒ์„ ๋•Œ ๋ฐœ์ƒ blur ํ•ธ๋“ค๋Ÿฌ์—์„  ํ•„๋“œ์— ์ด๋ฉ”์ผ์ด ์ž˜ ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์ž˜ ์ž…๋ ฅ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ์—๋Ÿฌ๋ฅผ ๋ณด์—ฌ์คŒ focus ํ•ธ๋“ค๋Ÿฌ์—์„œ๋Š” ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๋ฅผ ์ˆจ๊น€ focus์™€ blur ์ด๋ฒคํŠธ๋Š” ๋ฒ„๋ธ”๋ง ๋˜์ง€ ์•Š์Œ. ์บก์ฒ˜๋ง์ด๋‚˜ focusin ,focusout ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฒคํŠธ ์œ„์ž„ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ ํ˜„์žฌ ํฌ์ปค์Šค๋œ ์š”์†Œ๋Š” document.activeElement๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ focus ๊ฐ€๋Šฅํ•œ HTML์š”์†Œ ๋Œ€ํ™”ํ˜• ์š”์†Œ a button details input select textarea ์ด์™ธ์˜ ์š”์†Œ๋Š” ๋น„๋Œ€ํ™”ํ˜• ์š”์†Œ๋กœ ์นญํ•จ. ๐Ÿ’ก ๋น„๋Œ€ํ™”ํ˜• ์š”์†Œ์—๋„ ๊ฐ•์ œ๋กœ tabindex๋ฅผ ์‚ฌ์šฉํ•ด ํฌ์ปค์‹ฑ.. 2023. 1. 20.
[JavaScript] ๋น„๋™๊ธฐ ๋™๊ธฐ ์ฒ˜๋ฆฌ์™€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ JavaScript ์—”์ง„ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ(signle thread) ๋ฐฉ์‹ cf. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋กœ ๋™์ž‘! ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํƒœ์Šคํฌ๋งŒ ์‹คํ–‰ ์ฒ˜๋ฆฌ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ํƒœ์Šคํฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋ธ”๋กœํ‚น(์ž‘์—…์ค‘๋‹จ)์ด ๋ฐœ์ƒ ๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ๐Ÿ’ก ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ํƒœ์Šคํฌ๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ ๊นŒ์ง€ ๋‹ค์Œ์— ์‹คํ–‰๋  ํƒœ์Šคํฌ๊ฐ€ ๋Œ€๊ธฐํ•˜๋Š” ๋ฐฉ์‹ ํƒœ์Šคํฌ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ์‹คํ–‰ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋จ ์•ž์„  ํƒœ์Šคํฌ๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ดํ›„ ํƒœ์Šคํฌ๋“ค์ด ๋ธ”๋กœํ‚น ๋จ /* ๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ * ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํƒœ์Šคํฌ๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ ๊นŒ์ง€ ๋‹ค์Œ์— ์‹คํ–‰๋  ํƒœ์Šคํฌ๊ฐ€ ๋Œ€๊ธฐํ•˜๋Š” ๋ฐฉ์‹ */ //ํ•จ์ˆ˜ sleep์€ delay๊ฐ€ ๊ฒฝ๊ณผํ•œ ํ›„์— ์ฝœ๋ฐฑํ•จ์ˆ˜(func) ํ˜ธ์ถœ function sleep(func, delay){ //Date.now()๋Š” ํ˜„์žฌ ์‹œ๊ฐ„์„ .. 2023. 1. 17.
[JavaScript] API API ์‹œ์Šคํ…œ์ด ๋งŒ๋“ค์–ด ๋†“์€ ์„œ๋น„์Šค ์ฐฝ๊ตฌ REST API REpresentational State Transfer ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€(๋ฐ์ดํ„ฐ) ํ˜•์‹ HTTP ๋ฉ”์„œ๋“œ(POST, GET, PUT, DELETE)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•œ CRUD๋ฅผ ์ ์šฉ JSON Server๋ฅผ ์ด์šฉํ•œ REST API ์‹ค์Šต 1. JSON Server ์„ค์น˜ mkdir json-server-exam && cd json-server-exam npm init -y npm install json-server --save-dev 2. db.json ํŒŒ์ผ ์ƒ์„ฑ /json-server-exam/db.json { "todos":[ { "id":1, "content":"HTML", "completed":true }, { "id".. 2023. 1. 16.
[JavaScript] AJAX & JSON AJAX Asynchronous JavaScript And XML (๋น„๋™๊ธฐ์‹ JavaScript์™€ XML) ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด XMLHttpRequest ๊ฐ์ฒด๋ฅผ ํ™œ์šฉ JSON, XML, HTML ๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํ˜•์‹ ๋“ฑ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ํฌ๋งท์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ [์ฐธ๊ณ ] AJAX์˜ X๊ฐ€ XML์„ ์˜๋ฏธํ•˜๊ธด ํ•˜์ง€๋งŒ, ์š”์ฆ˜์€ ๋” ๊ฐ€๋ฒผ์šด ์šฉ๋Ÿ‰๊ณผ JavaScript์˜ ์ผ๋ถ€๋ผ ๋Š” ์žฅ์  ๋•Œ๋ฌธ์— JSON์„ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•จ |ํŠน์ง• ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ reload(์ƒˆ๋กœ ๊ณ ์นจ)๋ฅผ ํ•˜์ง€ ์•Š๊ณ ์„œ๋„ ์ˆ˜ํ–‰๋˜๋Š” “๋น„๋™๊ธฐ์„ฑ” ์„œ๋ฒ„์˜ ์‘๋‹ต์— ๋”ฐ๋ผ ์ „์ฒด ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ ์ผ๋ถ€๋ถ„๋งŒ์„ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Œ AJAX์˜ ์ฃผ์š” ๋‘๊ฐ€์ง€ ํŠน์ง•์€ ์•„๋ž˜์˜ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ ํŽ˜์ด์ง€ ์ƒˆ๋กœ ๊ณ ์นจ ์—†์ด ์„œ๋ฒ„์— ์š”์ฒญ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰ |X.. 2023. 1. 15.
[FE/JavaScript] ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น) ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ๐Ÿ’ก ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์ด ๋ญ”๊ฐ€์š”? ๐Ÿ’ก๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์€ ํฌ๊ฒŒ ์–ด๋–ค ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‚˜์š”? Q.๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น (๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น) ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ํ•ด์ฒดํ•˜์—ฌ ๊ทธ ๊ฐ’์„ ๊ฐœ๋ณ„ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” JavaScript ํ‘œํ˜„์‹ - MDN ๊ตฌ์กฐํ™”๋œ ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ์ดํ„ฐ๋Ÿฌ๋ธ” ๋˜๋Š” ๊ฐ์ฒด๋ฅผ destructuring(๋น„๊ตฌ์กฐํ™”, ๊ตฌ์กฐ ํŒŒ๊ดด)ํ•˜์—ฌ 1๊ฐœ ์ด์ƒ์˜ ๋ณ€์ˆ˜์— ๊ฐœ๋ณ„์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ ๐Ÿง iterable? ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(iterable object) ํ˜น์€ ์ค„์—ฌ์„œ iterable ๋‚ด์žฅ๋œ ์ƒ์„ฑ์ž ์ค‘ iterable ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์ƒ์„ฑ์ž String Array TypedArray Map Set Q.๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ์™œ ์“ฐ์ด์ฃ ? ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ์ดํ„ฐ๋Ÿฌ๋ธ” ๋˜๋Š” ๊ฐ์ฒด ์ดํ„ฐ๋Ÿด์—์„œ ํ•„์š”ํ•œ ๊ฐ’๋งŒ ์ถ”์ถœํ•˜์—ฌ ๋ณ€์ˆ˜์— ํ• ๋‹น ์‹œ ์œ .. 2022. 7. 6.
[FE/JavaScript] strict mode ๐Ÿ’ก strict mode๊ฐ€ ๋ญ”๊ฐ€์š”? ๐Ÿ’กstrict mode๋ฅผ ํ†ตํ•ด ๋ฌด์—‡์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์ฃ ? ๐ŸŽˆstrict mode๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์„ ์ข€ ๋” ์—„๊ฒฉํžˆ ์ ์šฉํ•˜์—ฌ ์ตœ์ ํ™” ์ž‘์—…์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋ช…์‹œ์ ์ธ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ ES5(ECMA Script 5)์— ์ถ”๊ฐ€๋œ ํ‚ค์›Œ๋“œ ๐ŸŽˆ strict mode๋ฅผ ํ†ตํ•ด ๋ฌด์—‡์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”? use strict๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์˜๋„์น˜ ์•Š์€ ์—ฌ๋Ÿฌ ์ž ์žฌ์ ์ธ ์˜ค๋ฅ˜๋ฅผ ๋ง‰์•„์ฃผ๋Š”๋ฐ ๋งŽ์€ ๋„์›€์„ ์ค€๋‹ค. ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋ฉด ์—†๋˜ ์˜ค๋ฅ˜๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๊ณต์‹์šฉ์–ด๋Š” ์•„๋‹ˆ์ง€๋งŒ, ๊ฐ€๋” ์—„๊ฒฉํ•˜์ง€ ์•Š์€ ๊ธฐ๋ณธ ๊ฐ’์„ sloppy mode(๋А์Šจํ•œ ๋ชจ๋“œ) ๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. sloppy mode์˜ ์˜ˆ์ œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ์–ด๋–จ๊นŒ? function foo(){ x.. 2022. 6. 27.
[FE/JavaScript]this like this yo like this Q.this๊ฐ€ ๋ญ”๊ฐ€์š”? this๋Š” ์ž๊ธฐ์ฐธ์กฐ๋ณ€์ˆ˜ ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด๋‚˜ ์ž์‹ ์ด ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž๊ธฐ ์ฐธ์กฐ ๋ณ€์ˆ˜(self-referencing variable) ๐Ÿ˜ฒq**.์™œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ?** ๋™์ž‘์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฉ”์„œ๋“œ๋Š” ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด์˜ ์ƒํƒœ(ํ”„๋กœํผํ‹ฐ)๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ ๋ฉ”์„œ๋“œ๊ฐ€ ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐธ์กฐํ•˜๋ ค๋ฉด ๋จผ์ € ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์‹๋ณ„์ž๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ! +)this์˜ ํŠน์ง• this๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์— ์˜ํ•ด ์•”๋ฌต์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ, ์ฝ”๋“œ ์–ด๋””์„œ๋“  ์ฐธ์กฐ ๊ฐ€๋Šฅ! ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด arguments ๊ฐ์ฒด์™€ this๊ฐ€ ์•”๋ฌต์ ์œผ๋กœ ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์ „๋‹ฌ this๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’, ์ฆ‰ this binding์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹.. 2022. 6. 23.
[FE/JavaScript] ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์˜ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์˜ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ Q.์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”? A. ์ƒ์„ฑ์ž(constructor)ํ•จ์ˆ˜๋Š” new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜์—ฌ ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค)๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ•จ์ˆ˜! ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ **์ธ์Šคํ„ด์Šค(instance)**๋ผ๊ณ  ํ•จ. Q.๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋งŒ๋“ค ๋•Œ์™€๋Š” ๋ฌด์Šจ ์ฐจ์ด๊ฐ€ ์žˆ์ฃ ? ์™œ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋‚˜์š”? โ–ถ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์— ์˜ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ์‹์˜ ๋ฌธ์ œ์  ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋Š” ๊ฐ™์€ ํ˜•ํƒœ์˜ ๊ฐ์ฒด๋ฅผ ์žฌ์ƒ์„ฑ ๋ถˆ๊ฐ€! ๋™์ผํ•œ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ–๋Š” ๊ฐ์ฒด๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ์„ฑํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ๋งค๋ฒˆ ๊ฐ™์€ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ธฐ์ˆ  ํ•ด์•ผํ•จ(๋น„ํšจ์œจ์ ) โ–ถ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ์‹ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์˜ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ์‹์€ ๋งˆ์น˜ ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค)๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ(ํด๋ž˜์Šค)์ฒ˜๋Ÿผ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ํ”„๋กœํผํ‹ฐ ๊ตฌ์กฐ๊ฐ€ ๋™.. 2022. 6. 13.
JavaScript - Event *๏ธโƒฃ Event |Event (์ด๋ฒคํŠธ) ๊ฐœ๋… ๋„คํŠธ์›Œํฌ ํ™œ๋™์ด๋‚˜ ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ ๊ฐ™์€ ์‚ฌ๊ฑด์˜ ๋ฐœ์ƒ์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด ์ด๋ฒคํŠธ ๋ฐœ์ƒ ๋งˆ์šฐ์Šค๋ฅผ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ํ‚ค๋ณด๋“œ๋ฅผ ๋ˆ„๋ฅด๋Š” ๋“ฑ ์‚ฌ์šฉ์ž ํ–‰๋™์œผ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Œ ํŠน์ • ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ(Element.click())ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ๋„ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ์Œ |Event ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค AnimationEvent, ClipboardEvent, DragEvent ๋“ฑ UIEvent ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฒคํŠธ Event์˜ ์ƒ์†์„ ๋ฐ›์Œ MouseEvent, KeyboardEvent, InputEvent, FocusEvent ๋“ฑ์˜ ๋ถ€๋ชจ ๊ฐ์ฒด ์—ญํ• ์„ ํ•จ |Event์˜ ์—ญํ•  “~ํ•˜๋ฉด ~ํ•œ๋‹ค.” “ํด๋ฆญํ•˜๋ฉด, ๊ฒฝ๊ณ ์ฐฝ์„ ๋„์šด๋‹ค.” “ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ํ•  ์ผ์„ ๋“ฑ๋กํ•œ๋‹ค.” .. 2022. 5. 3.
JavaScript - DOM(Document Object Model) |DOM ์กฐ์ž‘ - ๊ฐœ๋… Document๋Š” ๋ฌธ์„œ ํ•œ์žฅ(HTML)์— ํ•ด๋‹นํ•˜๊ณ  ์ด๋ฅผ ์กฐ์ž‘ DOM ์กฐ์ž‘ ์ˆœ์„œ ์„ ํƒ(Select) ๋ณ€๊ฒฝ(Mainpulation) |DOM ๊ด€๋ จ ๊ฐ์ฒด์˜ ์ƒ์† ๊ตฌ์กฐ Event Target Event Listner๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๊ฐ€ ๊ตฌํ˜„ํ•˜๋Š” DOM ์ธํ„ฐํŽ˜์ด์Šค Node ์—ฌ๋Ÿฌ ๊ฐ€์ง€ DOM ํƒ€์ž…๋“ค์ด ์ƒ์†ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค Element Document ์•ˆ์˜ ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ์ƒ์†ํ•˜๋Š” ๊ฐ€์žฅ ๋ฒ”์šฉ์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค ๋ถ€๋ชจ์ธ Node์™€ ๊ทธ ๋ถ€๋ชจ์ธ EventTarget์˜ ์†์„ฑ์„ ์ƒ์† Document ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ถˆ๋Ÿฌ์˜จ ์›น ํŽ˜์ด์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„ DOM ํŠธ๋ฆฌ์˜ ์ง„์ž…์ (entry point) ์—ญํ• ์„ ์ˆ˜ํ–‰ HTMLElement ๋ชจ๋“  ์ข…๋ฅ˜์˜ HTML ์š”์†Œ ๋ถ€๋ชจ element์˜ ์†์„ฑ ์ƒ์† |DOM ์„ ํƒ – ์„ ํƒ ๊ด€๋ จ ๋ฉ”์„œ๋“œ .. 2022. 5. 3.
JavaScript - Asynchronous JavaScript(์ฝœ๋ฐฑํ•จ์ˆ˜, Async callbacks,Promise), Axios *๏ธโƒฃ Callback Function - ์ธ์ž๋กœ ๋„˜๊ธฐ๋Š” ํ•จ์ˆ˜ ๋‹ค๋ฅธ ํ•จ์ˆ˜์— ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ํ•จ์ˆ˜ ์™ธ๋ถ€ ํ•จ์ˆ˜ ๋‚ด์—์„œ ํ˜ธ์ถœ๋˜์–ด ์ผ์ข…์˜ ๋ฃจํ‹ด ๋˜๋Š” ์ž‘์—…์„ ์™„๋ฃŒํ•จ ๋™๊ธฐ์‹, ๋น„๋™๊ธฐ์‹ ๋ชจ๋‘ ์‚ฌ์šฉ๋จ ๊ทธ๋Ÿฌ๋‚˜ ๋น„๋™๊ธฐ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„ ์ฝ”๋“œ ์‹คํ–‰์„ ๊ณ„์†ํ•˜๋Š” ๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉ๋จ ๋น„๋™๊ธฐ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„ ์ฝ”๋“œ ์‹คํ–‰์„ ๊ณ„์†ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋น„๋™๊ธฐ ์ฝœ๋ฐฑ(asynchronous callback)์ด๋ผ๊ณ  ํ•จ |JavaScript์˜ ํ•จ์ˆ˜ === “์ผ๊ธ‰ ๊ฐ์ฒด(First Class Object)” ์ผ๊ธ‰ ๊ฐ์ฒด (์ผ๊ธ‰ ํ•จ์ˆ˜) ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” ๊ฐ์ฒด(ํ•จ์ˆ˜) ์ผ๊ธ‰ ๊ฐ์ฒด์˜ ์กฐ๊ฑด ์ธ์ž๋กœ ๋„˜๊ธธ ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ |Async callbacks ํ•จ์ˆ˜ ⇒ .. 2022. 5. 3.
JavaScript - AJAX, Asynchronous (๋น„๋™๊ธฐ) *๏ธโƒฃAJAX Asynchronous JavaScript And XML (๋น„๋™๊ธฐ์‹ JavaScript์™€ XML) ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด XMLHttpRequest ๊ฐ์ฒด๋ฅผ ํ™œ์šฉ JSON, XML, HTML ๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํ˜•์‹ ๋“ฑ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ํฌ๋งท์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ [์ฐธ๊ณ ] AJAX์˜ X๊ฐ€ XML์„ ์˜๋ฏธํ•˜๊ธด ํ•˜์ง€๋งŒ, ์š”์ฆ˜์€ ๋” ๊ฐ€๋ฒผ์šด ์šฉ๋Ÿ‰๊ณผ JavaScript์˜ ์ผ๋ถ€๋ผ ๋Š” ์žฅ์  ๋•Œ๋ฌธ์— JSON์„ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•จ |ํŠน์ง• ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ reload(์ƒˆ๋กœ ๊ณ ์นจ)๋ฅผ ํ•˜์ง€ ์•Š๊ณ ์„œ๋„ ์ˆ˜ํ–‰๋˜๋Š” “๋น„๋™๊ธฐ์„ฑ” ์„œ๋ฒ„์˜ ์‘๋‹ต์— ๋”ฐ๋ผ ์ „์ฒด ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ ์ผ๋ถ€๋ถ„๋งŒ์„ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Œ AJAX์˜ ์ฃผ์š” ๋‘๊ฐ€์ง€ ํŠน์ง•์€ ์•„๋ž˜์˜ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ ํŽ˜์ด์ง€ ์ƒˆ๋กœ ๊ณ ์นจ ์—†์ด ์„œ๋ฒ„์— ์š”์ฒญ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰.. 2022. 5. 3.
JavaScript - ํ”„๋กœํ† ํƒ€์ž…(prototype), ํด๋ž˜์Šค(class) ๐Ÿคํ”„๋กœํ† ํƒ€์ž…(prototype) |JS์˜ ์ƒ์†๊ณผ ๊ฐ์ฒด JS๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด JS์˜ ๊ฐ์ฒด๋Š” key-value ๊ตฌ์กฐ์˜ ์ž๋ฃŒ๊ตฌ์กฐ Python๊ณผ ๊ฐ™์€ ํด๋ž˜์Šค๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ฐ์ฒด์™€ ๋‹ค๋ฆ„ JS๋Š” ํด๋ž˜์Šค๊ฐœ๋…์ด ์กด์žฌํ•˜์ง€ ์•Š๊ณ , ํ”„๋กœํ† ํƒ€์ž…์ด๋ผ๋Š” ๊ฐœ๋…์„ ํ™œ์šฉํ•ด ์ƒ์†์„ ๊ตฌํ˜„ ES5 ๊นŒ์ง€๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์›ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์˜€์œผ๋‚˜, ES6+ ๋ถ€ํ„ฐ๋Š” class ํ‚ค์›Œ๋“œ๋กœ ๋Œ€์ฒด function Rectangle(width, height) { this.width = width this.height = height } Rectangle.prototype.getArea = function () { return this.width * this.height } function Square(length) { R.. 2022. 5. 3.
JavaScript - this this - "์ž๊ธฐ์ฐธ์กฐ๋ณ€์ˆ˜" ์ •์˜ ๋‚ด๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ถˆ๋ฆฌ๋А๋ƒ์— ๋”ฐ๋ผ ๋ฐ”์ธ๋”ฉ ๋˜๋Š” ๊ฒƒ. ๋ชฉ์  "๊ฐ์ฒด"์—์„œ "๋‚ด"๊ฐ€ ํ”„๋กœํผํ‹ฐ๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด "์–ด๋””์„œ" "์–ด๋–ป๊ฒŒ" ๋ถ€๋ฅด๋А๋ƒ์— ๋”ฐ๋ผ this๋Š” ๋‹ฌ๋ผ์ง„๋‹ค! ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ ๋˜์—ˆ์„ ๋•Œ -> **์ „์—ญ ๊ฐ์ฒด** ํ•จ์ˆ˜() -> window function test(){ console.log(this) } test() Window {0: global, window: Window, self: Window, document: document, name: '', location: Location, …} ๋ฉ”์„œ๋“œ๋กœ ํ˜ธ์ถœ ๋˜์—ˆ์„ ๋•Œ -> **"๊ทธ" ๋ฉ”์„œ๋“œ๋ฅผ ๋ณด์œ ํ•œ ๊ฐ์ฒด ** ๊ฐ์ฒด.๋ฉ”์„œ๋“œ() ->๊ฐ์ฒด const obj = {} const obj = { test : function.. 2022. 5. 2.
JavaScript - ๊ฐ์ฒด(Objects) ๐Ÿค๊ฐ์ฒด(Objects) - “๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ์ž๋ฃŒํ˜•”์„ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ ๊ฐ์ฒด : 'ํ‚ค'์™€ '๊ฐ’'์œผ๋กœ ์ด๋ฃจ์–ด์ง„ 'ํ”„๋กœํผํ‹ฐ'๋“ค์˜ ์ง‘ํ•ฉ! (ํ‚ค์™€ ๊ฐ’์˜ ์ง‘ํ•ฉ) ๊ฐ์ฒด์˜ ๋ชฉ์  : ๋‹ค์–‘ํ•œ "๋ฐ์ดํ„ฐ ํƒ€์ž…"์˜ ์ž๋ฃŒ๋“ค์„ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•จ ํ”„๋กœํผํ‹ฐ ํ‚ค : (๋ฌธ์ž์—ด) ํ”„๋กœํผํ‹ฐ ๊ฐ’ : (๋ชจ๋“ ๊ฐ’) ํ”„๋กœํผํ‹ฐ ๊ฐ’์ด ํ•จ์ˆ˜์ธ ๊ฒฝ์šฐ๋ฅผ "๋ฉ”์„œ๋“œ" ๋ฉ”์„œ๋“œ : ๊ฐ์ฒด์•ˆ์˜ ํ•จ์ˆ˜ ๊ฐ์ฒด์•ˆ์— ํ”„๋กœํผํ‹ฐ ๊ฐ’์ด ํ•จ์ˆ˜์ธ : ๋ฉ”์„œ๋“œ ํ•จ์ˆ˜ ์•ˆ์— ๋ฉ”์„œ๋“œ๊ฐ€ ํฌํ•จ!! |๊ฐ์ฒด์˜ ์ •์˜์™€ ํŠน์ง• ๊ฐ์ฒด๋Š” ์†์„ฑ(property)์˜ ์ง‘ํ•ฉ์ด๋ฉฐ, ์ค‘๊ด„ํ˜ธ ๋‚ด๋ถ€์— key์™€ value์˜ ์Œ์œผ๋กœ ํ‘œํ˜„ key๋Š” ๋ฌธ์ž์—ด ํƒ€์ž…*๋งŒ ๊ฐ€๋Šฅ (์ฐธ๊ณ ) key ์ด๋ฆ„์— ๋„์–ด์“ฐ๊ธฐ ๋“ฑ์˜ ๊ตฌ๋ถ„์ž๊ฐ€ ์žˆ์œผ๋ฉด ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์–ด์„œ ํ‘œํ˜„ value๋Š” ๋ชจ๋“  ํƒ€์ž…(ํ•จ์ˆ˜ํฌํ•จ) ๊ฐ€๋Šฅ ๊ฐ์ฒด ์š”์†Œ ์ ‘๊ทผ์€ ์  ๋˜๋Š” ๋Œ€๊ด„ํ˜ธ๋กœ ๊ฐ€๋Šฅ (์ฐธ๊ณ ) ke.. 2022. 4. 27.
JavaScript - ๋ฐฐ์—ด(Arrays) ๐Ÿค๋ฐฐ์—ด(Arrays) JavaScript์—์„œ์˜ ๋ฐฐ์—ด์€ “์ •์‹ ๋ฐฐ์—ด”์ด ์•„๋‹˜! “์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด”์ž„! →๊ฐ์ฒด const a = [] typeof a //'object' ๋ฐฐ์—ด์˜ ์ •์˜์™€ ํŠน์ง• ํ‚ค์™€ ์†์„ฑ๋“ค์„ ๋‹ด๊ณ  ์žˆ๋Š” ์ฐธ์กฐ ํƒ€์ž…์˜ ๊ฐ์ฒด(object) ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๋Š” ํŠน์ง•์ด ์žˆ์Œ ์ฃผ๋กœ ๋Œ€๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑํ•˜๊ณ , 0์„ ํฌํ•จํ•œ ์–‘์˜ ์ •์ˆ˜ ์ธ๋ฑ์Šค๋กœ ํŠน์ • ๊ฐ’์— ์ ‘๊ทผ ๊ฐ€๋Šฅ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” array.length ํ˜•ํƒœ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ (์ฐธ๊ณ ) ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋Š” array.length – 1๋กœ ์ ‘๊ทผ const numbers = [1,2,3,4,5] console.log(numbers[0]) //1 console.log(numbers[-1]) //undefined console.log(numbers.length)//5 cons.. 2022. 4. 27.
JavaScript - ๋ฌธ์ž์—ด(String) ๐Ÿค๋ฌธ์ž์—ด |๋ฌธ์ž์—ด ๊ด€๋ จ ์ฃผ์š” ๋ฉ”์„œ๋“œ includes split replace trim |includes string.includes(value) ํŠน์ • ๋ฌธ์ž์—ด์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ์ฐธ/๊ฑฐ์ง“์œผ๋กœ ๋ฐ˜ํ™˜ const str = 'a santa at nasa’ str.includes('santa') // true str.includes('asan') // false |split string.split(value) ๋ฌธ์ž์—ด์„ ํ† ํฐ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ ๋ฐฐ์—ด ๋ฐ˜ํ™˜ value๊ฐ€ ์—†์„ ๊ฒฝ์šฐ, ๊ธฐ์กด ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด์— ๋‹ด์•„ ๋ฐ˜ํ™˜ value๊ฐ€ ๋นˆ ๋ฌธ์ž์—ด์ผ ๊ฒฝ์šฐ ๊ฐ ๋ฌธ์ž๋กœ ๋‚˜๋ˆˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ value๊ฐ€ ๊ธฐํƒ€ ๋ฌธ์ž์—ด์ผ ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ฌธ์ž์—ด๋กœ ๋‚˜๋ˆˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ const str = 'a cup’ str.split() // ['a cup’] str.sp.. 2022. 4. 26.
JavaScript - ํ•จ์ˆ˜(function) ๐Ÿคํ•จ์ˆ˜ - ์ธํ’‹๊ฐ’์— ์–ด๋– ํ•œ ์กฐ์ž‘์„ ๊ฐ€ํ•ด ์•„์›ƒํ’‹ ๊ฐ’์„ ๋ฝ‘๋Š” ๊ฒƒ |ํ•จ์ˆ˜ in JavaScript ์ฐธ์กฐ ํƒ€์ž… ์ค‘ ํ•˜๋‚˜๋กœ์จ function ํƒ€์ž…์— ์†ํ•จ JavaScript์—์„œ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ฃผ๋กœ 2๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„ ํ•จ์ˆ˜ ์„ ์–ธ์‹ (function declaration) ํ•จ์ˆ˜ ํ‘œํ˜„์‹ (function expression) |ํ•จ์ˆ˜ ์„ ์–ธ์‹ ํ•จ์ˆ˜์˜ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹ 3๊ฐ€์ง€ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ ํ•จ์ˆ˜์˜ ์ด๋ฆ„(name) ๋งค๊ฐœ๋ณ€์ˆ˜ (args) ๋ชธํ†ต(์ค‘๊ด„ํ˜ธ ๋‚ด๋ถ€) function name(args) { //do something } function add(num1,num2){ return num1+num2 } add(1,2) |ํ•จ์ˆ˜ ํ‘œํ˜„์‹ const name = function (args){ //do something }.. 2022. 4. 26.
JavaScript - ์กฐ๊ฑด๋ฌธ ๐Ÿค์กฐ๊ฑด๋ฌธ |์กฐ๊ฑด๋ฌธ์˜ ์ข…๋ฅ˜์™€ ํŠน์ง• ‘If’ statement ์กฐ๊ฑด ํ‘œํ˜„์‹์˜ ๊ฒฐ๊ณผ๊ฐ’์„ Booleanํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ ํ›„ ์ฐธ/๊ฑฐ์ง“ ํŒ๋‹จ ์กฐ๊ฑด์€ ์†Œ๊ด„ํ˜ธ! ์‹คํ–‰ํ•  ์ฝ”๋“œ๋Š” ์ค‘๊ด„ํ˜ธ! ๋ธ”๋ก์Šค์ฝ”ํ”„ ์ƒ์„ฑ if (condition){ //do something }else if (condition){ //do something }else { //do something } const nation = 'korea' if (nation ==== 'korea'){ console.log('์•ˆ๋…•ํ•˜์„ธ์š”!') } else if (nation === 'spain'){ console.log('hola!') } else { cosole.log('hello') } ‘switch’statement ์กฐ๊ฑด ํ‘œํ˜„์‹์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ์–ด๋А ๊ฐ’(case)์— ํ•ด๋‹นํ•˜๋Š”์ง€.. 2022. 4. 26.
JavaScript - ๋ฐ์ดํ„ฐ ํƒ€์ž…, ์—ฐ์‚ฐ์ž ๐Ÿค๋ฐ์ดํ„ฐ ํƒ€์ž… |๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ์ข…๋ฅ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ชจ๋“  ๊ฐ’์€ ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์ง ํฌ๊ฒŒ ์›์‹œํƒ€์ž…(Primitive type)๊ณผ ์ฐธ์กฐํƒ€์ž…(Reference type) ์œผ๋กœ ๋ถ„๋ฅ˜ ์›์‹œ ํƒ€์ž…(Primitive type) ์ฐธ์กฐ ํƒ€์ž…(Reference type) ๊ฐ์ฒด(object)๊ฐ€ ์•„๋‹Œ ๊ธฐ๋ณธ ํƒ€์ž… ๊ฐ์ฒด(object)ํƒ€์ž…์˜ ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜์— ํ•ด๋‹น ํƒ€์ž…์˜ ๊ฐ’์ด ๋‹ด๊น€ ๋ณ€์ˆ˜์— ํ•ด๋‹น ๊ฐ์ฒด์˜ ์ฐธ์กฐ ๊ฐ’์ด ๋‹ด๊น€ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋ณต์‚ฌํ•  ๋•Œ ์‹ค์ œ ๊ฐ’์ด ๋ณต์‚ฌ๋จ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋ณต์‚ฌํ•  ๋•Œ ์ฐธ์กฐ ๊ฐ’์ด ๋ณต์‚ฌ๋จ |์›์‹œํƒ€์ž…์˜ undefinedํƒ€์ž…๊ณผ nullํƒ€์ž… ๋น„๊ต undefined null ๋นˆ ๊ฐ’์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋นˆ ๊ฐ’์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ ์•„๋ฌด ๊ฐ’๋„ ํ• ๋‹นํ•˜์ง€ ์•Š์œผ๋ฉด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ํ• ๋‹น ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜.. 2022. 4. 26.
JavaScript - intro, ๋ณ€์ˆ˜ JavaScript ๊ธฐ์ดˆ a=b —> b๋ฅผ a์— “ํ• ๋‹น”ํ•œ๋‹ค ํ• ๋‹น : “์ตœ์ดˆ”์— ๋ฌด์–ธ๊ฐ€๋ฅผ a์— ๋„ฃ๋Š” ํ–‰์œ„ ์žฌํ• ๋‹น : “๊ฐ™์€๊ณต๊ฐ„(๋ฉ”๋ชจ๋ฆฌ→๋ณ€์ˆ˜a)”์— ๋ฌด์–ธ๊ฐ€๋ฅผ ๋„ฃ๋Š” ํ–‰์œ„ ๋ฐ์ดํ„ฐ ํƒ€์ž… : ์›์‹œ๊ฐ’,๊ฐ์ฒด๊ฐ’ ๐ŸคIntro |๋ธŒ๋ผ์šฐ์ € (browser === browse;๊ฒ€์ƒ‰ํ•˜๋‹ค+er;~ํ•˜๋Š” ๊ฒƒ) URL๋กœ ์›น(WWW)์„ ํƒ์ƒ‰ํ•˜๋ฉฐ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ณ , HTML ๋ฌธ์„œ๋‚˜ ํŒŒ์ผ์„ ์ถœ๋ ฅํ•˜๋Š” GUI ๊ธฐ๋ฐ˜์˜ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋„ท์˜ ์ปจํ…์ธ ๋ฅผ ๊ฒ€์ƒ‰ ๋ฐ ์—ด๋žŒํ•˜๋„๋ก ํ•จ “์›น ๋ธŒ๋ผ์šฐ์ €”๋ผ๊ณ ๋„ ํ•จ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € Google Chrome, Mozilla Firefox, Microsoft Edge, Opera, Safari |JavaScript์˜ ํ•„์š”์„ฑ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์„ ‘๋™์ ’์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•จ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์–ธ์–ด ๐ŸคBrowser |B.. 2022. 4. 26.