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. ์ด์ 1 ๋ค์