๐Ÿ“• Language/JavaScript 10

[Javascript] ๋‚ ์งœ ํฌ๋งท ์ข…๋ฅ˜ (์˜ค๋Š˜, ์ด๋ฒˆ๋‹ฌ ๋ง, ํ•œ๋‹ฌ ์ „ ๋“ฑ)

์“ธ ๋•Œ ๋งˆ๋‹ค ์ฐพ์•„์•ผํ•ด์„œ ํ—ท๊ฐˆ๋ฆผ ์ผ๋‹จ ์—ฌ๊ธฐ์— ๋ชจ์•„๋†“๊ณ , ๊ณ„์† ์ถ”๊ฐ€ ์˜ˆ์ • 0. ๊ณตํ†ต ๋ฐ์ดํ„ฐ ํฌ๋งท ์œ ํ˜• (YYYY-MM-DD) const getFormatDate = (date) => { let month = date.getMonth() + 1; month = month >= 10 ? month : '0' + month; let day = date.getDate(); day = day >= 10 ? day : '0' + day; return date.getFullYear() + '-' + month + '-' + day; } 1. ์˜ค๋Š˜ getFormatDate(new Date()) 2. ์˜ฌํ•ด 1์›” 1์ผ getFormatDate(new Date(state.now.setFullYear(state.now.getFu..

[Javascript] Set

Set 1. ์ค‘๋ณต ๊ฐ’์ด ์—†๋Š” ์œ ์ผํ•œ ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ 2. ์ˆœ์„œ์— ์˜๋ฏธ๊ฐ€ ์—†์Œ 3. index๋กœ ์ ‘๊ทผ ๋ถˆ๊ฐ€ 1. Set ๊ฐ์ฒด ์ƒ์„ฑ const set = new Set(); console.log(set); //Set(0) {} const set1 = new Set([1, 2]); //Set(2) {1,2} const set2 = new Set('hello'); //Set(4) {"h", "e", "l", "o"} โ€ป ๋ฐฐ์—ด์˜ ์ค‘๋ณต์ œ๊ฑฐ ๊ธฐ๋Šฅ์œผ๋กœ ์‚ฌ์šฉ //๊ธฐ์กด const uniq = array => array.filter((v, i, self) => self.indexOf(v) === i); console.log(uniq([1, 1, 2, 2, 3])); // [1, 2, 3] //Set์ด์šฉ const uniq = ..

[javascript] ๋ฐฐ์—ด ์•ˆ ๊ฐ์ฒด ์š”์†Œ์˜ ๋ฌธ์ž์—ด ์กฐํ•ฉ

/** * 3๊ฐœ์˜ ํƒ€์ž… ์ค‘, 2๊ฐœ์˜ ํƒ€์ž… ์„ ํƒ ์‹œ ํ•ด๋‹น name ๊ฐ’ join์„ ์ด์šฉํ•ด ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋ฝ‘์•„์˜ค๊ธฐ */ const types =[ {name : '์ถ”์ฒœ', value : 1}, {name : '๋ฌถ์Œ', value : 2}, {name : '๋‹จ์ผ', value : 3} ]; const values = [1, 2]; let arr = []; for(let i in values) { const data = types.filter((item) => item.value === values[i]).map(item => item.name); for(let n in data) { arr.push(data[n]); } } console.log(arr.join()); // "์ถ”์ฒœ,๋ฌถ์Œ"

[javascript] ์ฐธ์กฐํ˜•์˜ ์–•์€ ๋ณต์‚ฌ(Shallow Copy) & ๊นŠ์€ ๋ณต์‚ฌ(Deep Copy)

์ž์ฃผ ํ—ท๊ฐˆ๋ ค์„œ ์ฐธ์กฐํ˜•์€ ์•„๋ฌป๋”ฐ JSON.parse()์™€ JSON.stringify()๋ฅผ ์ด์šฉํ•˜์—ฌ ๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ํ•ด์™”๋Š”๋ฐ ์ด ๋ฐฉ๋ฒ•์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ ํ•  ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์•„๋ž˜์— ๊ฐ™์ด ์ด์•ผ๊ธฐํ•˜๊ฒ ๋‹ค. ๊ฐ์ฒด๋Š” ์ฐธ์กฐํ˜•์ด๋ผ ๋ณต์‚ฌ ์‹œ, '='๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ฐ’์ด ๋ณต์‚ฌ๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋‹จ์ง€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ฐ’์„ ๋ณต์‚ฌํ•˜์—ฌ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ๋œ๋‹ค. ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฑด๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์ฃผ์˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. โ–  ์–•์€ ๋ณต์‚ฌ(Shallow Copy) 1. Object.assign(target, ...sources) ๊ฐ์ฒด ์ž์ฒด๋Š” ๊นŠ์€ ๋ณต์‚ฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹จ, ๊ฐ์ฒด๊ฐ€ 2์ฐจ์› ์ด์ƒ์ด๋ผ๋ฉด ์–•์€ ๋ณต์‚ฌ๊ฐ€ ๋œ๋‹ค. let obj = { a: 1, b: { c: 2 } }; let copyObj = Object.assign({}, obj); conso..

[javascript] ๋ฐฐ์—ด ์•ˆ ๊ฐ์ฒด๋“ค์˜ ๊ฐ ์š”์†Œ ๋”ํ•˜๊ธฐ

const arr = [{a:1, b:2, c:3}, {a:4, b:5, c:6}]; { a: 5, b: 7, c: 9 } const arr = [{a:1, b:2, c:3}, {a:4, b:5, c:6}]; const result = arr.reduce((acc, cur) => { acc.a += cur.a; acc.b += cur.b; acc.c += cur.c; return acc; }, {a:0, b:0, c:0}); const arr = [ { key: 100, alphabet: [{ a: 1, b: 2, c: 3 }] }, { key: 200, alphabet: [{ a: 4, b: 5, c: 6 }] }, ]; { a: 5, b: 7, c: 9 } let rsltObj = {}; for (c..

[javascript] <input> ํƒœ๊ทธ์— ์ˆซ์ž๋งŒ ์ž…๋ ฅ (์ •๊ทœ์‹ ์‚ฌ์šฉ)

input ํƒœ๊ทธ์— number ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•จ์— ๋”ฐ๋ผ ํƒ€ ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณ„์‚ฐ๋˜์–ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น input box์—๋Š” string ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์•ˆ๋œ๋‹ค. @input ํƒœ๊ทธ๋ฅผ ์จ์„œ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ณ , ๊ทธ๋•Œ๊ทธ๋•Œ ๊ณ„์‚ฐ์„ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— string์ด ๋“ค์–ด์˜ค๋ฉด ๋ฐ”๋กœ NaN ๊ฐ’์ด ๋˜์–ด๋ฒ„๋ฆฌ๋ฏ€๋กœ, ๋‹ค์‹œ number๋ฅผ ์ž…๋ ฅํ•ด๋„ NaN์ด ๋˜์–ด๋ฒ„๋ ธ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์‚ฐ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค. ๊ฒฐ๋ก ์€, input ๋ฐ•์Šค์— ์ž ๊น์ด๋ผ๋„ string์ด ์ž…๋ ฅ๋˜์–ด์„œ๋Š” ์•ˆ๋˜๋Š” ์ƒํ™ฉ ๋ณดํ†ต ์ด๋ ‡๊ฒŒ type์„ number๋กœ ์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ, ์ด๊ฑด ์ž ๊น์ด๋‚˜๋งˆ string ๊ฐ’์ด ์ž…๋ ฅ๋œ ํ›„ ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— @input์— ๊ฐ์ง€๋œ๋‹ค. type์„ text๋กœ ๋ฐ”๊พธ๊ณ , oninput์— ์ •๊ทœ์‹์„ ๋„ฃ์–ด ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋Š” ๊ฒฝ์šฐ replace..

[Javascript] ES5, 6 ์ฐจ์ด

ES6 1. const and let ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜ ํ‚ค์›Œ๋“œ const - var๋ณด๋‹ค ๊ฐ•๋ ฅํ•˜๊ณ , ๋ณ€์ˆ˜๋ฅผ ์žฌํ• ๋‹นํ•  ์ˆ˜ ์—†๋‹ค. let - const์™€ ๋‹ฌ๋ฆฌ ๋ณ€์ˆ˜ ์žฌํ• ๋‹น ๊ฐ€๋Šฅ 2. Arrow functions(ํ™”์‚ดํ‘œ ํ•จ์ˆ˜) ES5 function func(name) { return '๋‚ด ์ด๋ฆ„์€' + name; } console.log(func('kea')); //๋‚ด ์ด๋ฆ„์€ kea ES6 const func = (name) => { return `๋‚ด ์ด๋ฆ„์€ ${name}`; } const func = (name) => `์•ˆ๋…• ${name}`; console.log(func('kea')); //๋‚ด ์ด๋ฆ„์€ kea map, filter, reduce ๋“ฑ ๋‚ด์žฅ ํ•จ์ˆ˜์™€ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ES5 const arr = ['๋ฐ”๋‚˜..

[Javascript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ

์บกํ‹ดํŒ๊ต๋‹˜์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ๋‹ค์ง€๊ธฐ ๊ธ€์„ ์ฐธ์กฐํ•˜์—ฌ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋„์ ์ธ ๊ธฐ๋ก์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํƒ€์ž… 1. Number - ์‹ค์ˆ˜ 2. String - ๋ฌธ์ž์—ด 3. Boolean 4. undefined - ๋ณ€์ˆ˜์— ๊ฐ’์ด ํ• ๋‹น๋˜๊ธฐ ์ „ ๊ฐ’์ด์ž ํƒ€์ž… 5. null - ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฐ’. ํƒ€์ž…์€ Object์œผ๋กœ ๋ฐ˜ํ™˜ 1. Object 2. Array 3. Function NaN? ์ •์ƒ์  ๊ฐ’์„ ์–ป์ง€ ๋ชปํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ ์˜ˆ์‹œ) ํ”„๋กœํผํ‹ฐ๋ช…์ด ์—ฐ์‚ฐ์ž ํฌํ•จํ•˜์—ฌ ์—๋Ÿฌ delete ์—ฐ์‚ฐ์ž ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ์‚ญ์ œ. ๋‹จ, ๊ฐ์ฒด ์‚ญ์ œ ๋ถˆ๊ฐ€! ๊ฐ์ฒด์˜ ๋ชจ๋“  ์—ฐ์‚ฐ์€ ์ฐธ์กฐ ๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌํ•จ Array์™€ Object์˜ ๊ตฌ๋ถ„ delete, splice ์—ฐ์‚ฐ์ž์™€ ๋ฐฐ์—ด typeof var num = 10; var str = "a"; var..

[Javascript] instanceof, arguments

function a() { if(!(this instanceof arguments.callee)) { return new a(); } } 1. function function๋„ ํ•˜๋‚˜์˜ ๊ฐ์ฒด์ด๋‹ค. 2. this, new this๋Š” ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ž๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ฆ‰์‹œ์‹คํ–‰ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์•ž์— ํ˜ธ์ถœ์ž๊ฐ€ ์—†๋‹ค๋ฉด, ๊ธฐ๋ณธ์ ์œผ๋กœ window ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ํ•จ์ˆ˜ ์„ ์–ธ ์‹œ, ์•ž์— new๊ฐ€ ๋ถ™๊ณ  ์•ˆ๋ถ™๊ณ ๋Š” ์™„์ „ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ถ€๋ฅธ๋‹ค. a(); //a ํ•จ์ˆ˜ ์† this๋Š” window ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. var func = a(); //a ํ•จ์ˆ˜ ์† this๋Š” window ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. (์ฐธ๊ณ  func; ๋ฅผ ํ•˜๋ฉด, a()๊ฐ€ ์‹คํ–‰๋œ๋‹ค.) new a(); //a ํ•จ์ˆ˜ ์† this๋Š” ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. var func = new a..

[Javascript] this

Javascript์—์„œ์˜ this๋Š” Java๋ณด๋‹ค ๋” ๋‹ค์–‘ํ•œ ๋™์ž‘๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. var info = {name: "euna"} this.name์€ euna๊ฐ€ ์ถœ๋ ฅ๋˜์–ด์ง„๋‹ค. ๋ณ€์ˆ˜ info๋Š” this๊ฐ€ ๋ฐ”๋ผ๋ณด๋Š” ๊ฐ์ฒด๊ฐ€ ๋œ๋‹ค. this์˜ ๋™์ž‘ ๋ฐฉ์‹๋“ค ์šฐ์„ , this๋ฅผ ์ฝ˜์†” ๋กœ๊ทธ๋กœ ์ฐ์–ด๋ณด์ž this๋Š” ์ „์—ญ ๊ฐ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ฐ’์œผ๋กœ ๊ฐ–๋Š”๋‹ค. (์—ฌ๊ธฐ์„œ๋Š” window ๊ฐ์ฒด) console.log(this); ์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ์˜ This : ์ผ๋ฐ˜ํ•จ์ˆ˜์—์„œ๋Š” ์ „์—ญ ๊ฐ์ฒด์ธ window๊ฐ€ ์ €์žฅ ์ผ๋ฐ˜ ์ค‘์ฒฉ ํ•จ์ˆ˜์—์„œ์˜ This : ์œ„์™€ ๋™์ผ Events Listener์—์„œ์˜ This : this๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ๊ฐ์ฒด ๋ฉ”์†Œ๋“œ์—์„œ์˜ This : ๊ฐ์ฒด ์ž์‹ ์ด ์ €์žฅ ๋ฉ”์†Œ๋“œ : ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰ (java๋กœ ๋”ฐ์ง€๋ฉด class์— ์ข…์†๋œ ..

๋ฐ˜์‘ํ˜•