๐Ÿ“ƒ Front-End/JavaScript

๐Ÿ“ƒ Front-End/JavaScript

JavaScript ๋ฌธ์ž์—ด ๊ด€๋ จ ์ •๋ฆฌ

๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ โžก .split() const word = 'apple' word.split('') // ['a','p','p','l','e'] ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ โžก๏ธ .join() ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž๋ฆฌ์— ๊ตฌ๋ถ„์ž๋ฅผ ๋„ฃ์ง€ ์•Š์œผ๋ฉด, ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์ด ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„์ด๋˜๊ณ , ๊ตฌ๋ถ„์ž๊ฐ€ ๋นˆ ๋ฌธ์ž์—ด์ด๋ฉด ๊ณต๋ฐฑ ์—†์ด ์—ฐ๊ฒฐ ๋ฉ๋‹ˆ๋‹ค. const animals = ['rabbit', 'gorilla' , 'lion', 'bear'] animals.join() // 'rabbit,gorilla,lion,bear' animals.join('') // 'rabbitgorillalionbear' animals.join(' ') // 'rabbit gorilla lion bear' animals.join(' & ')..

๐Ÿ“ƒ Front-End/JavaScript

replace ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด ์น˜ํ™˜(RegExp ๊ฐ์ฒด ์‚ฌ์šฉ)

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ ํ•˜๋˜ ์ค‘ ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ์น˜ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  replace() ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • ๋ฌธ์ž์—ด์„ ์น˜ํ™˜ ํ•  ๋•Œ ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค. โœ” ํ•˜์ง€๋งŒ, ๋ฌธ์ž์—ด์—์„œ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ๋ฌธ์ž๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณต๋  ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฐœ๊ฒฌํ•œ ๋ฌธ์ž์—ด๋งŒ ์น˜ํ™˜ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ• replace('์ฐพ์„ ๋ฌธ์ž์—ด or ์ •๊ทœ์‹', '๋ณ€๊ฒฝํ•˜๋Š” ๋ฌธ์ž์—ด') ์˜ˆ์‹œ let str = "์‚ฌ๊ณผ, ๋ฐฐ, ์ˆ˜๋ฐ•"; let strChange = str.replace("๋ฐฐ", "์˜ค๋ Œ์ง€"); console.log(strChange); // ์‚ฌ๊ณผ, ์˜ค๋ Œ์ง€, ์ˆ˜๋ฐ• ์ •๊ทœ์‹ โ“ โœ” ์ •ํ•ด์ง„ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ด ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋ณ€ํ™˜ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์ˆซ์ž,๋ฒˆํ˜ธ๋‚˜ ๋งจ ์ฒ˜์Œ, ๋งจ ๋’ค๋งŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๊ทœ์‹ ์˜ต์…˜ ์˜ต์…˜ g ๋ชจ๋“  ํŒจํ„ด ์ฒดํฌ(global) i ๋Œ€์†Œ๋ฌธ์ž..

๐Ÿ“ƒ Front-End/JavaScript

๋ชจ๋“ˆํ™”

๋‹ค๋ฅธ ํŒŒ์ผ์— ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋Šฅ์„ ํŠน์ • ํŒŒ์ผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Import & Export ์ž„ํฌํŠธ(Import)์™€ ์ต์ŠคํฌํŠธ(Export)๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• export ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ๋‹ค ์“ธ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์˜ ์•ž์— export ๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ž…๋‹ˆ๋‹ค. ์ต์ŠคํฌํŠธ๋œ ํŒŒ์ผ์€ ์ž„ํฌํŠธ๋กœ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. import { ๋ถˆ๋Ÿฌ์˜ฌ ๋ณ€์ˆ˜ ๋˜๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„ } from 'ํŒŒ์ผ ๊ฒฝ๋กœ'; ์˜ˆ์ œ math.js export let pi = 3.14; export function sum(a, b) { return a + b; } app.js import { pi } from './math.js'; console.log(pi); // 3.14 i..

๐Ÿ“ƒ Front-End/JavaScript

๋ธŒ๋ผ์šฐ์ € ๊ฐ์ฒด ๋ชจ๋ธ(BOM, Browser Object Model)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์˜ ์ •๋ณด์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ €์˜ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๋“ค์„ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด ๋ชจ๋ธ์ด ๋ฐ”๋กœ ๋ธŒ๋ผ์šฐ์ € ๊ฐ์ฒด ๋ชจ๋ธ(BOM, Browser Object Model)์ž…๋‹ˆ๋‹ค. BOM window Global Context(์ „์—ญ ๊ณต๊ฐ„)์ด์ž ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด navigator ๋ธŒ๋ผ์šฐ์ €์™€ ์šด์˜์ฒด์ œ ๋Œ€ํ•œ ์ •๋ณด screen ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์˜ ๋””์Šคํ”Œ๋ ˆ์ด(๋ชจ๋‹ˆํ„ฐ) ์ •๋ณด๋ฅผ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด location ํ˜„์žฌ URL ์— ๋Œ€ํ•œ ์ •๋ณด, ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๋Š” URL history ํ˜„์žฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ ‘๊ทผํ–ˆ๋˜ URL history document ํ˜„์žฌ ๋ฌธ์„œ์— ๋Œ€ํ•œ ์ •๋ณด ์ฐธ๊ณ  http://www.tcpschool.com/javascript/js_bom_window https://..

๐Ÿ“ƒ Front-End/JavaScript

๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(DOM, Document Objects Model)

XML์ด๋‚˜ HTML ๋ฌธ์„œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ผ์ข…์˜ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ์ฒด ๋ชจ๋ธ์€ ๋ฌธ์„œ ๋‚ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ •์˜ํ•˜๊ณ , ๊ฐ๊ฐ์˜ ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋„“์€ ์˜๋ฏธ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML ํŽ˜์ด์ง€๋ฅผ ์ธ์‹ํ•˜๋Š” ๋ฐฉ์‹ ์ข์€ ์˜๋ฏธ Document ๊ฐ์ฒด์™€ ๊ด€๋ จ๋œ ๊ฐ์ฒด์˜ ์ง‘ํ•ฉ DOM ์•ˆ์—๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ •์˜ํ•œ ์š”์†Œ๋“ค์ด Tree ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์ด์šฉํ•˜์—ฌ JS๋กœ ์›นํŽ˜์ด์ง€๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTML์˜ , ๊ทธ๋ฆฌ๊ณ  ์˜ ์•ˆ์— ๊ฐ๊ฐ์˜ tag ๋“ค์„ ์š”์†Œ(element)๋ผ๊ณ  ๋ถ€๋ฅด๊ณ , JS์—์„œ๋Š” ๋ฌธ์„œ ๊ฐ์ฒด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. DOM์„ ์ด์šฉํ•˜๋ฉด HTML ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€, ์ˆ˜์ •,์‚ญ์ œ ๋“ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DOM Tree ์ •๋ฆฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML ํŒŒ์ผ์„ ์ฝ์„ ๋•Œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š”, ๋ฉ”๋ชจ๋ฆฌ์— ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ๋Š” objec..

๐Ÿ“ƒ Front-End/JavaScript

==(๋™๋“ฑ ์—ฐ์‚ฐ์ž)์™€ ===(์ผ์น˜ ์—ฐ์‚ฐ์ž)

๋™๋“ฑ์—ฐ์‚ฐ์ž(==)๋Š” ํ”ผ์—ฐ์‚ฐ์ž๋“ค์˜ ๊ฐ’๋งŒ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, == ์—ฐ์‚ฐ์ž๋Š” ํƒ€์ž… ๋ณ€ํ™˜์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํƒ€์ž… ๋ณ€ํ™˜์„ ํ•œ ํ›„์— ๋™๋“ฑํ•˜์ง€ ๋น„๊ตํ•œ๋‹ค. ์ผ์น˜์—ฐ์‚ฐ์ž(===)๋Š” ํ”ผ์—ฐ์‚ฐ์ž๋“ค์˜ ๊ฐ’๊ณผ ํƒ€์ž…์„ ๋ชจ๋‘ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, === ์—ฐ์‚ฐ์ž๋Š” ํƒ€์ž… ๋ณ€ํ™˜์„ ํ•˜์ง€ ์•Š๊ณ  ๋‘ ๊ฐ’์ด ๊ฐ™์€ ํƒ€์ž…์ด ์•„๋‹Œ ๊ฒฝ์šฐ ===๋Š” false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์˜ˆ์‹œ console.log('01' == 1) // true, ๋ฌธ์ž์—ด '01'์ด ์ˆซ์ž 1๋กœ ๋ณ€ํ™˜๋œ ํ›„ ๋น„๊ต ์ง„ํ–‰ console.log(true == 1) // true, true ๋Š” 1, false ๋Š” 0์œผ๋กœ ๋ณ€ํ™˜๋œ ํ›„ ๋น„๊ต console.log(false == 0) // true console.log(0 === false) // false null์ด๋‚˜ undefined์™€ ๋น„๊ต ๋ณ€์ˆ˜์— ๊ฐ’์ด null ..

๐Ÿ“ƒ Front-End/JavaScript

์—„๊ฒฉ๋ชจ๋“œ(use strict)

ECMAScript5 ๋ถ€ํ„ฐ ๋„์ž…๋œ ๊ธฐ๋Šฅ์œผ๋กœ ๊ธฐ์กด์— ๋ฌด์‹œ๋˜๋˜ ์—๋Ÿฌ๋“ค๋กœ ํ•˜์—ฌ๊ธˆ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ ์‹œํ‚ต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์™”๊ธฐ ๋•Œ๋ฌธ์— ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ES5๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜๊ณ  ๊ธฐ์กด ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€๊ฐ€ ๋ณ€๊ฒฝ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์— ๋”ฐ๋ผ ๊ธฐ์กด ๊ธฐ๋Šฅ์ด ๋ณ€๊ฒฝ๋˜์–ด ํ˜ธํ™˜์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด ์—„๊ฒฉ ๋ชจ๋“œ(strict mode) ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• "use strict"; // ์ด ์ฝ”๋“œ๋Š” ๋ชจ๋˜ํ•œ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ... ์ตœ์ƒ๋‹จ์— ์„ ์–ธ ํ•ฉ๋‹ˆ๋‹ค. ์œ„์— ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋ฉด ํŒŒ์ผ ์ „์ฒด์— ์ ์šฉ์ด๋˜๊ณ , ์›ํ•˜๋Š” ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„์—๋งŒ ์ ์šฉ์ด ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  MDN, use strict https://ko.javascript.inf..

๐Ÿ“ƒ Front-End/JavaScript

Async / Await

async/await ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋น„๊ต์  ์‰ฝ๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. promise ์‚ฌ์šฉ ํ•˜๊ธฐ ์ „ (๋ฌธ์ œ์ ) function fetchUser(){ // ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š”๋ฐ 10์ดˆ ์ •๋„ ๊ฑธ๋ฆฐ๋‹ค๊ณ  ๊ฐ€์ • return 'hyunho'; } const user = fetchUser() console.log(user) ์œ„์—์ฒ˜๋Ÿผ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์ฝ”๋“œ๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋™๊ธฐ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ฆ‰ ํ•œ์ค„ ํ•œ์ค„์”ฉ ํ•œ์ค„์ด ๋๋‚˜์•ผ ๊ทธ ๋‹ค์Œ ์ค„๋กœ ๋„˜์–ด ๊ฐ‘๋‹ˆ๋‹ค. fetchUser() ํ•จ์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ๊ณณ์œผ๋กœ ๊ฐ€์„œ ํ•จ์ˆ˜์˜ ์ฝ”๋“œ ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š”๋ฐ 10์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋‹ˆ๊นŒ 10์ดˆ๋™์•ˆ ๋จธ๋ฌด๋ฅด๊ณ  ์žˆ๊ณ , ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ์•ผ 'hyunho' ๊ฐ€ ๋ฆฌํ„ด์ด..

HoHo.dev
'๐Ÿ“ƒ Front-End/JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก