๐ค Language/๐จ JavaScript
JS. ์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ
์์ ๋ณต์ฌ / Shallow Copy '์ฃผ์ ๊ฐ'์ ๋ณต์ฌํ๋ค๋ ์๋ฏธํ๋ค. ์์ ๋ณต์ฌ์ ๊ฒฝ์ฐ ์ฃผ์ ๊ฐ์ ๋ณต์ฌํ๊ธฐ ๋๋ฌธ์, ์ฐธ์กฐํ๊ณ ์๋ ์ค์ ๊ฐ์ ๊ฐ๋ค. const user = { name: 'imae', age: 85, emails: ['kurt5451@naver.com'] } const copyUser = user console.log(copyUser === user) // ๊ฐ: true user.age = 21 console.log(user) // ๊ฐ: {name: 'imae', age: 21, email: array(1)} console.log(copyUser) // ๊ฐ: {name: 'imae', age: 21, email: Array(1)} // user์ copyUser๊ฐ ๋ฐ๋ผ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ..
JS. ๋ฐ์ดํฐ ๋ถ๋ณ์ฑ(Immutability)
๋ถ๋ณ์ฑ(Immutability) ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ถ๋ณ์ฑ์ด๋ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ์ดํ ๊ทธ ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๊ฒ์ ์๋ฏธํ๋ค. ์์ ๋ฐ์ดํฐ ์์ ๋ฐ์ดํฐ๋ ๋ถ๋ณ์ฑ์ ๊ฐ์ง๊ณ ์๋ค. String, Number, Boolean, undefined, null let a = 1 let b = 4 console.log(a, b, a === b) b = a // ๋ณ์ b์ a๊ฐ ๋ฐ๋ผ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ํ ๋น console.log(a, b, a === b) a = 7 // a์ ๋ค๋ฅธ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋ฏ๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ํ ๋น console.log(a, b, a === b) let c = 1 console.log(b, c, b === c) // c๋ ์๋ก์ด ๋ณ์์ง๋ง ์๋ ์กด์ฌํ๋ ๋ฐ์ดํฐ ๊ฐ์ธ 1์ด ํ ๋น๋์์ผ๋ฏ๋ก // b์ c..
JS. ์ ๊ฐ ์ฐ์ฐ์ / Spread Operator
์ ๊ฐ ์ฐ์ฐ์ ECMAScript6(2015)์์ ์๋ก ์ถ๊ฐ๋ ์ ๊ฐ ์ฐ์ฐ์(Spread Operator)๋ ๊ฐ์ฒด๋ ๋ฐฐ์ด์ ๊ฐ์ ํ๋ ํ๋ ๋๊ธฐ๋ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์๋ค. ์ ๊ฐ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ์ธ๊ฐ(...)๋ฅผ ๋ถ์ด๋ฉด ๋๋ค. const fruits = ['Apple', 'Banana', 'Cherry'] console.log(fruits) console.log(...fruits) // console.log('Apple', 'Banan', 'Cherry') function toObject(a, b, c) { return { a: a, b: b, c: c } } console.log(toObject(...fruits)) ์คํ ๊ฒฐ๊ณผ [ 'Apple', 'Banana', 'Cherry' ] Apple B..
JS. ๊ตฌ์กฐ ๋ถํด ํ ๋น / ๋น๊ตฌ์กฐํ ํ ๋น / Destructuring assignment
๊ตฌ์กฐ ๋ถํด ํ ๋น ๊ตฌ์กฐ ๋ถํด ํ ๋น ๊ตฌ๋ฌธ์ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์์ฑ์ ํด์ฒดํ์ฌ ๊ทธ ๊ฐ์ ๊ฐ๋ณ ๋ณ์์ ๋ด์ ์ ์๊ฒ ํ๋ JavaScript ํํ์์ด๋ค. const user = { name: 'imae', age: 21, email: 'kurt5451@naver.com' } const { name, age, address = 'Korea' } = user // E.g, user.address console.log(`์ฌ์ฉ์์ ์ด๋ฆ์ ${name}์ ๋๋ค.`) console.log(`${name}์ ๋์ด๋ ${age}์ด์ ๋๋ค.`) console.log(`${name}์ ์ด๋ฉ์ผ ์ฃผ์๋ ${user.email}์ ๋๋ค.`) console.log(address) ์คํ ๊ฒฐ๊ณผ ์ฌ์ฉ์์ ์ด๋ฆ์ imae์ ๋๋ค. imae์ ๋์ด๋ 2..
JS. ๊ฐ์ฒด
Object.assign() Object.assign() ๋ฉ์๋๋ ์ถ์ฒ ๊ฐ์ฒด๋ค์ ๋ชจ๋ ์ด๊ฑฐ ๊ฐ๋ฅํ ์์ฒด ์์ฑ์ ๋ณต์ฌํด ๋์ ๊ฐ์ฒด์ ๋ถ์ฌ๋ฃ๋๋ค. ๊ทธ ํ ๋์ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. const target = { a: 1, b: 2 }; const source = { b: 4, c: 5 }; const returnedTarget = Object.assign(target, source); console.log(target); // expected output: Object { a: 1, b: 4, c: 5 } console.log(returnedTarget); // expected output: Object { a: 1, b: 4, c: 5 } ๋ชฉํ ๊ฐ์ฒด์ ์ถ์ฒ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ๋ ๊ฒ์ด๋ค. b ์์๋ ์ค๋ณตํด์ ์์๋๋ฐ..
JS. ๋ฐฐ์ด(2) / Array
.filter() filter() ๋ฉ์๋๋ ์ฃผ์ด์ง ํจ์์ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ๋ชจ๋ ์์๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํ๋ค. ๋ง๋ค์ด๋ธ ์กฐ๊ฑด์ ๋ง๋ ๋ด์ฉ์ ๊ฑธ๋ฌ๋ธ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ค. const numbers = [1, 2, 3, 4] const fruits = ['Apple', 'Banana', 'Cherry'] const a = numbers.map(number => number number < 3) console.log(b) console.log(numbers) ์คํ ๊ฒฐ๊ณผ [ true, true, false, false ] [ 1, 2 ] [ 1, 2, 3, 4 ] .map()์ ์ฌ์ฉํ๋ฉด number๋ tr..
JS. ๋ฐฐ์ด (1) / Array
Array JavaScript Array ์ ์ญ ๊ฐ์ฒด๋ ๋ฐฐ์ด์ ์์ฑํ ๋ ์ฌ์ฉํ๋ ๋ฆฌ์คํธ ํํ์ ๊ณ ์์ค ๊ฐ์ฒด์ด๋ค. zero based๋ฅผ ์ฌ์ฉํ์ฌ 0๋ถํฐ ์์ํ๋ค. ๋ฆฌํฐ๋ด([])๋ถ๋ถ ๋ค์ ๋ฉ์๋๋ฅผ ๋ถ์ฌ์ ์ฌ์ฉํ๋ค. const numbers = [1, 2, 3, 4] const fruits = ['Apple', 'Banana', 'Cherry'] console.log(numbers) console.log(numbers[1]) console.log(fruits) console.log(fruits[2]) ์คํ ๊ฒฐ๊ณผ [ 1, 2, 3, 4 ] 2 [ 'Apple', 'Banana', 'Cherry' ] Cherry find() find() ๋ฉ์๋๋ ์ฃผ์ด์ง ํ๋ณ ํจ์๋ฅผ ๋ง์กฑํ๋ ์ฒซ ๋ฒ์งธ ์์์ ๊ฐ์ ๋ฐํํ๋ค. ๊ทธ๋ฐ ..
JS. ์ํ ๊ฐ์ฒด / Math
Math Math ๋ ์ํ์ ์ธ ์์์ ํจ์๋ฅผ ์ํ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๊ฐ์ง ๋ด์ฅ ๊ฐ์ฒด์ด๋ค. (โป ํจ์ ๊ฐ์ฒด๊ฐ ์๋๋ค.) Math ๋ Number ์๋ฃํ๋ง ์ง์ํ๋ค. toFixed() toFixed() ๋ฉ์๋๋ ์ซ์๋ฅผ ๊ณ ์ ์์์ ์ผ๋ก ํ๊ธฐํด ๋ฐํํ๋ค. const pi = 3.14159265358979 console.log(pi) const str = pi.toFixed(2) console.log(str) console.log(typeof str) ์คํ ๊ฒฐ๊ณผ 3.14159265358979 3.14 string toFixed() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด String ์๋ฃํ์ด๋ค. parseInt() / parseFloat() parseInt() ํจ์๋ ๋ฌธ์์ด ์ธ์๋ฅผ ํ์ฑํ์ฌ ํน์ ์ง์์ ์ ์๋ฅผ ๋ฐํํ๋ค. parseFloa..
JS. ๋ฌธ์
JS string ๊ฒ์ ๋ฐฉ๋ฒ string mdn์ ๊ฒ์ํ์ฌ ์๋ ์ฌ์ดํธ์ ์ ์ํ๋ค. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String String - JavaScript | MDN String ์ ์ญ ๊ฐ์ฒด๋ ๋ฌธ์์ด(๋ฌธ์์ ๋์ด)์ ์์ฑ์์ ๋๋ค. developer.mozilla.org ์ด์ ๊ฐ์ ์ฌ์ดํธ๋ฅผ ์ ์ํ๋ฉด mozilla์์ ์ ๊ณตํ๋ ๋ฌธ์์ ๊ด๋ จ๋ ์๋ฃ๋ฅผ ์ฐพ์ ์ ์๋ค. indexOf()๋ผ๋ ๊ธฐ์ ์ ์ฐพ๊ธฐ ์ํด command + F ๋ฅผ ๋๋ฌ์ ํด๋น ๋งค์๋์ ๊ด๋ จ๋ ์๋ฃ๋ฅผ ์ฐพ์ ์ ์์๋ค. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Gl..
JS. ์์(ํ์ฅ)
ํด๋์ค ์์(ํ์ฅ) ํด๋์ค ์์์ ์ฌ์ฉํ๋ฉด ํด๋์ค๋ฅผ ๋ค๋ฅธ ํด๋์ค๋ก ํ์ฅํ ์ ์๋ค. extends ํด๋์ค ํ์ฅ ๋ฌธ๋ฒ์ผ๋ก ์ฐ๋ฆฌ์ ์์ ๋ฅผ ๋ณด๋ฉด Vehicle์ด๋ผ๋ ํด๋์ค๋ฅผ ์์, ํ์ฅํ๋ ค๊ณ ํ๋ค. Bicycle๊ณผ Car๋ผ๋ ํด๋์ค๋ก ์ค๋ช ํด๋ณด๊ฒ ๋ค. class Vehicle { constructor(name, whell) { this.name = name this.whell = whell } } const myVehicle = new Vehicle('์ด์ก์๋จ', 2) console.log(myVehicle) ๊ธฐ์กด์ ํด๋์ค ํจ์๋ก์จ ์ ๋ฒ ES6 Classes์์ ๋ฐฐ์ด ๋ด์ฉ์ด๋ค. ์ด์ก์๋จ์ผ๋ก์จ Vehicle์ ํด๋์ค๋ก ์ ์ธํ๋ค. ๊ทธ๋ฌ๋ฉด Bicycle์ ์์์ด ๋๋ ๊ฒ์ด๊ณ , Car๋ license๋ผ๋ ๋งค์๋๋ฅผ ์ถ๊ฐํ..