๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๐Ÿ“’ JavaScript29

JavaScript ํ”„๋กœํ† ํƒ€์ž…(prototype) ์ดํ•ด Object (๊ฐ์ฒด) ์„œ๋กœ ์—ฐ๊ด€๋œ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ๊ทธ๋ฃนํ•‘ํ•ด์„œ ์ด๋ฆ„์„ ๋ถ™์ธ ๊ฒƒ var memberObject = { tami: 'name', developer: 'java', age:'25', } this ๋ฉ”์„œ๋“œ๊ฐ€ ์ž์‹ ์ด ์†ํ•ด์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ‚ค์›Œ๋“œ ๊ฐ์ฒด๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Œ var kim = { name: 'kim', first:10, second:20, sum: function(){ return this.first+this.second; } } console.log(kim.sum()); //30 ์œ„์˜ ์˜ˆ์‹œ์˜ ๊ฐ์ฒด๋Š” ์ˆ˜์ž‘์—…์œผ๋กœ ๋งŒ๋“  ๊ฐ์ฒด ๊ฐ์ฒด๋ฅผ ์ฐ์–ด๋‚ด๋Š” ๋™์ž‘์„ ๋”ฐ๋กœ ๊ตฌํ˜„ ํ•˜์—ฌ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์•ผํ•จ Prototype javascript ๋Š” prototype based langu.. 2021. 3. 10.
[JavaScript] Class ์™€ ์ƒ์† ๐Ÿ“Œ class ๊ด€๋ จ ์žˆ๋Š” ํ•จ์ˆ˜์™€ ๋ณ€์ˆ˜๋ฅผ ๋ฌถ์–ด๋†“์€ ๊ฒƒ ์ƒ์†๊ณผ ๋‹ค์–‘์„ฑ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ - fields - methods * data class : methods๊ฐ€ ์—†๋Š” fields( data)๋งŒ ์žˆ๋Š” class class object - template ํ…œํ”Œ๋ฆฟ - declare once - no data in (๋ฐ์ดํ„ฐ๋Š” ์—†๊ณ  ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ‹€) class ๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋“  ๊ฒƒ = ๊ฐ์ฒด javascript ์˜ class javascript ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ์–ธ์–ด object๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ๋Œ์•„๊ฐ€๋Š” application - ECMA Script 6๋ฒ„์ „์—์„œ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ - ES6 ์—์„œ ์ƒ๊น€ - class๊ฐ€ ์žˆ๊ธฐ ์ „์—๋Š” constructor function์„ ์ด์šฉํ•ด template์„ ๋งŒ๋“ค๊ณ  ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. - ๊ธฐ์กด์—.. 2021. 3. 10.
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] fetch() API ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœํ•˜๊ธฐ AJAX ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ javascript๋ฅผ ์ด์šฉํ•ด ์›น์„œ๋ฒ„์— ์ ‘์†, ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ํŽ˜์—์ง€ ๋‚ด์˜ ์ •๋ณด๋“ค์„ ๋ถ€๋ถ„์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ  ํ•„์š”ํ•œ ์ •๋ณด๋งŒ์„ ๋ถ€๋ถ„์ ์œผ๋กœ ์ •๊ตํ•˜๊ฒŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ์ˆ  ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ถ€๋ถ„์ ์œผ๋กœ ์›นํŽ˜์ด์ง€๋ฅผ ๋กœ๋”ฉํ•  ์ˆ˜ ์žˆ์–ด ์ž์› ์ ˆ์•ฝ ๊ฐ€๋Šฅ ๊ทธ์ค‘ ์ตœ์‹ ์ธ, fetch API ๋‹จ๊ณ„๋ณ„๋กœ ๋ฐฐ์›Œ๋ณด๊ธฐ step by step๐Ÿงฆ fetch('javascript') ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„ ์›น๋ธŒ๋ผ์šฐ์ €! 'javascript'๋ผ๋Š” ํŒŒ์ผ์„ ์„œ๋ฒ„์—๊ฒŒ ์‘๋‹ตํ•ด์ค˜ fuunction callbackme(){ } fetch('html').then(callbackme); ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•  ๋•Œ ๊นŒ์ง€ ๋‹ค๋ฅธ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก then์„ ์‚ฌ์šฉ 'html' ํŒŒ์ผ์„ ์„œ๋ฒ„์—๊ฒŒ ์‘๋‹ตํ•ด์ฃผ๊ณ  ์‘๋‹ต์ด ๋๋‚˜๋ฉด callbackme๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ.. 2021. 2. 26.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ Promise()๋กœ callback์ง€์˜ฅ ๋ฒ—์–ด๋‚˜๊ธฐ ๋™๊ธฐ์  ์‹คํ–‰ : ์ฝ”๋“œ๊ฐ€ ์ˆœ์„œ์— ๋งž์ถฐ์„œ ์ž๋™์ ์œผ๋กœ ์‹คํ–‰๋จ hoisting : var๋ณ€์ˆ˜, function declaration( ํ•จ์ˆ˜์„ ์–ธ)๋“ค์ด์ž๋™์ ์œผ๋กœ ์ œ์ผ ์œ„์— ์„ ์–ธ๋จ callback ํ•จ์ˆ˜ : ๋‚ด๊ฐ€ ์ „๋‹ฌํ•ด ์ค€ ํ•จ์ˆ˜๋ฅผ ๋‚˜์ค‘์— ์‹คํ–‰ํ•ด์ค˜ * setTimeout( hadler , timeout) - handler : callback ํ•จ์ˆ˜ - timeout: ์ง€์ •๋œ ์‹œ๊ฐ„ ms ๋‹จ์œ„ (1์ดˆ 1000) ๋น„๋™๊ธฐ ์‹คํ–‰ (์‹ค์Šต) js์—”์ง„์€ ์ฝ”๋“œ๋ฅผ ์ œ์ผ ์œ„์—์„œ๋ถ€ํ„ฐ ์•„๋ž˜๋กœ ์‹คํ–‰ console.log('1'); setTimeout(function(){ console.log(2); },1000) console.log('3'); //ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ console.log('1'); setTimeout(()=> console.. 2021. 2. 25.
Javascript JSON.parse(), JSON.stringify() ์‚ฌ์šฉํ•˜๋Š”๋ฒ• HTTP ์›น์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š ๋งํฌ, ๋ฌธ์„œ, ์ด๋ฏธ์ง€ client -์„œ๋ฒ„ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ request (์š”์ฒญ), response (์‘๋‹ต)ํ•˜๋Š” ํ†ต์‹  ๊ทœ์•ฝ AJAX (Asynchronous JS and XML) ์›นํŽ˜์ด์ง€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์ ์œผ๋กœ ์„œ๋ฒ„์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ  XHR (XML HTTP Request) : ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ œ๊ณตํ•˜๋Š” object - XML markup ์–ธ์–ด์ค‘ ํ•˜๋‚˜๋กœ html๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• -> ๋ถˆํ•„์š”ํ•œ ํƒœ๊ทธ๋“ค ๋งŽ์ด ๋“ค์–ด๊ฐ€ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง - fetch() API JSON (JS object Notation) Object{ key:value} : ๋ธŒ๋ผ์šฐ์ €, ๋ชจ๋ฐ”์ผ์—์„œ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•  ๋•Œ , (ํ†ต์‹  ์•„๋‹ˆ์–ด๋„)object๋ฅผ ํŒŒ์ผ์‹œ์Šคํ…œ์— ์ €์žฅํ•  ๋•Œ - ๋ฐ์ด.. 2021. 2. 23.
Node.JS express๋กœ ์„œ๋ฒ„ ๊ตฌ์„ฑํ•˜๊ธฐ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์™œ ์‚ฌ์šฉํ• ๊นŒ? Framework ๋ฐ˜๋ณต์ ์œผ๋กœ ์–ด๋””์—์„œ๋‚˜ ๋“ฑ์žฅํ•˜๋Š” ์ผ์„ ๋” ์ ์€ ์ฝ”๋“œ๋กœ ๋งŽ์€ ์ผ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ ๋ฏธ๋ฆฌ ์ •์„ฑ๊ป ๊ตฌํ˜„ํ•ด๋†“์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•จ ๐Ÿค” ๊ฐœ๋ฐœ์ž๋Š” web์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์–ด๋””์—์„œ๋‚˜ ์ผ์–ด๋‚˜๋Š” ์ผ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์˜ ์ผ๋“ค์„ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. - url ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ผ - ์ •์ ์ธ jsํŒŒ์ผ, imageํŒŒ์ผ๋“ค์„ ์ปดํ“จํ„ฐ์—์„œ ์ฝ์–ด์™€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต - ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ - ๋ณด์•ˆ์ ์ธ ์ด์Šˆ ํ•ด๊ฒฐ express node.js ์˜ ๋ณดํŽธ์  ์›นํ”„๋ ˆ์ž„์›Œํฌ์ค‘ ํ•˜๋‚˜ ๋ฐฐ์šฐ๊ธฐ ์–ด๋ ต์ง€๋งŒ, ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ํ•˜๋‚˜ Node.js ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ ๋™์ž‘ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ํ™˜๊ฒฝ ์„œ๋ฒ„์ธก์˜ ํ‘œ์ค€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ฑ ๋Œ€๊ฑฐ ํฌํ•จ nvm: ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ.. 2021. 2. 23.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด prototype ์€ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋“ค์ด ์—ฌ๋Ÿฌ๊ฐœ ์ž‡์–ด๋„ ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์—์„œ ํšจ์œจ์ ์œผ๋กœ ์žฌ์‚ฌ์šฉ๋จ ๊ฐ์ฒด๋“ค์ด ๊ฐ™์€ ๊ณต๊ฐ„์„ shareํ•˜๋Š” ๊ฒƒ prototype โ– this ๋กœ function ์ •์˜ ํ–ˆ์„ ๊ฒฝ์šฐ const Health = function(name, healthTime) { this.name = name; this.healthTime = healthTime; this.showHealth = function() { return this.name + this.lastTime + "์šด๋™์™„๋ฃŒ"; } } const h1 = new Health("tami", "12:12"); const h2 = new Health("recoder", "02:12"); h1.showHealth === h2.showHealth /.. 2021. 2. 22.
์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง, ์ด๋ฒคํŠธ ์บก์ณ๋ง - DOM์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง div, body,html ์— ๋ชจ๋‘ click ์ด๋ฒคํŠธ๊ฐ€ ์žˆ์„ ๋•Œ โ– currentTarget & target currentTarget ์ด๋ฒคํŠธ์˜ ์ง„์งœ ์ฃผ์ธ target ์ด ์ด๋ฒคํŠธ๊ฐ€ ๋ˆ„๊ตฌ๋–„๋ฌธ์— ์‹คํ–‰์ด ๋๋Š”๊ฐ€ ๐Ÿ‘‰ ์ด๋ฒคํŠธ๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ์—ฐ์ขŒ์ œ๋กœ ์‹คํ–‰๋จ ๋”ฐ๋ผ์„œ ์ด๋ฒคํŠธ๋Š” event-flow ๋ฅผ ๊ฐ€์ง โ– CapturePhase & BubblePhase capture phase porpoagate-up ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด๊ฒƒ๋ถ€ํ„ฐ ์‹คํ–‰ html > body > div Target pahse porpoagate-down ๋‹น์‚ฌ์ž ์‹คํ–‰ Bubble phase propogate-down ๋‹ค์‹œ ๋‚ด๋ ค๊ฐ€๋ฉฐ ์‹คํ–‰ ์“ธ ๋ฐ ์—†๋Š” ์ค‘๋ณต ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋˜๊ฒŒ ๋จ html > body > div> body > html ๐Ÿ“Œ ex) ์˜ˆ์‹œ๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ.. 2021. 2. 22.
[JavaScript ] ์ด๋ฒคํŠธํ•ธ๋“ค๋ง event handler = event listner = event ์ฝœ๋ฐฑํ•จ์ˆ˜ : ์ด๋ฒคํŠธ๊ฐ€ ์ผ์–ด๋‚ฌ์„๋•Œ ์ˆ˜ํ–‰ํ•  ํ•จ์ˆ˜๋“ค โ– addEventListner() '์ด๋ฒคํŠธ ํƒ€์ž…' , ํ•จ์ˆ˜ , option ({}, true,,,) inputElm.addEventListner('click', funcition(){ alert('๋ˆ„๋ฆ„') }); inputElm์— click ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋˜๋ฉด alert ํ•จ์ˆ˜ ์‹คํ–‰ ๐Ÿ˜‰ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” event ์ข…๋ฅ˜ load ํŒŒ์ผ ๋กœ๋“œ๊ฐ€ ๋๋‚ฌ์„ ๋–„ scroll user ์Šคํฌ๋กค ํ–ˆ์„ ๋•Œ resize ํ™”๋ฉด ์‚ฌ์ด์ฆˆ ์ค„์ด๊ณ  ํ‚ค์šธ๋•Œ blur ์–ด๋–ค ์š”์†Œ focusํ–ˆ๋‹ค ๋‹ค๋ฅธ ์š”์†Œ ์„ ํƒํ•  ๋•Œ focus ์–ด๋–ค ์š”์†Œ focus์ƒํƒœ์ผ๋•Œ change ipnut, text ๋“ฑ์˜ ๊ฐ’์ด ๋ฐ”๊ผˆ์„ ๋–„ submit submi.. 2021. 2. 16.
๋ฐ˜์‘ํ˜•