๐จ Frontend/JavaScript
๐ฆVanilla JS โค ๊ฐ์ฒด - (1) ๋ฆฌํฐ๋ด ๊ฐ์ฒด
kongmi
2023. 3. 28. 12:55
๊ฐ์ฒด๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฅ ์ค์ํ๊ณ ๊ฐ๋ ฅํ ๊ฐ๋ ์ค ํ๋ ์ ๋๋ค.
- ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ์ฒด ๋๋ ๊ธฐ๋ณธ,์์ํ์ (primitive type) ๊ฐ์ ํฌํจํ ์ ์๋ ์ปจํ ์ด๋ ์ ๋๋ค.
- ๊ฐ์ฒด๋ ์ค๊ดํธ {}๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ค๋ฉฐ, ์์ฑ(property)๊ณผ ๊ฐ(value)์ ์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ [๊ฐ์ฒด ๋ฆฌํฐ๋ด]๊ณผ [ํด๋์ค]๊ฐ ์์ง๋ง, [๊ฐ์ฒด ๋ฆฌํฐ๋ด]๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ฒ์ด ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ ๋๋ค.
- ์น ๊ฐ๋ฐ์์ ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ(BOM)๊ณผ ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM) ๋ฑ ๋ค์ํ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์น ํ์ด์ง๋ฅผ ์กฐ์ ๋ฐ ์ํธ์์ฉํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๊ฐ์ฒด ๋ฆฌํฐ๋ด
๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ๋ฐฑ์๋์ ํต์ ํ ๋ ์ฃผ๋ก ์ฐ์
๋๋ค.
๐ ์) ํ์์ ๋ณด 3000๋ฒ ํฌํธ์์ 8211๋ฒ ํฌํธ๋ก ์ ๋ฌ (BE : 8211๋ฒ / FE : 3000๋ฒ)
- ์์๋๋ฉด ์ข์! Tip!
FE : ๋ฆฌํฐ๋ด ๊ฐ์ฒด & Map
BE : ArrayList & Map
* ์ ๋ฌํ ๋๋ ๋ฆฌํฐ๋ด ๊ฐ์ฒด
* ์ ๋ณด๋ฅผ ๋ฐ์ ๋๋ Map (๊ฐ์ฒด ๋จ์๋ก ํ๋ฒ์ ..)
์์ฑ ๋ฐฉ๋ฒ
let obj = {
property1: value1,
property2: value2,
method1: function() { ... },
method2: function() { ... }
};
๊ฐ์ฒด ์์ฑ
- ๊ฐ์ฒด ์์ฑ์ ๊ฐ์ฒด ๋ด๋ถ์ ๋ณ์๋ก ๊ฐ์ ์ ์ฅํฉ๋๋ค.
const person = {
title : "ํฌ๋ผ์์ฌ2",
name : "๋ฐ์ง์ค",
age : 44,
job : "์๋์ด์"
};
console.log(person.age); // 44
- ๊ฐ์ฒด ์์ ๋ค๋ฅธ ๊ฐ์ฒด๋ ํจ์๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
const person20 = { // ์ค์ฒฉ
name : {
firstName : "์ง์ค",
lastName : "๋ฐ"
},
age : 44,
isAdult : true,
printInfo : function() {
return this.name;
}
};
console.log(person20.printInfo().firstName); // ์ง์ค
console.log(person20[`isAdult`]); // true
person20.name.firstName = "Jiyoon";
person20.name.lastName = "Park";
console.log(person20.name); // {firstName : 'Jiyoon', lastName: 'Park'}
๐ก ๊ฐ์ฒด ์์ฑ์ ํค๋ก ์ ๊ทผํด ๊ฐ์ ์ฌํ ๋นํ๋ฉด ๊ธฐ์กด ์์ฑ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋ง์ฝ ํด๋น ํค๊ฐ ์๋ค๋ฉด ํด๋น ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ ์๋ก์ด ์์ฑ์ด ๊ฐ์ฒด์ ์ถ๊ฐ ๋ฉ๋๋ค.
const carInfo = {};
carInfo.name = "ํ
์ฌ๋ผ";
carInfo.year = 2022;
carInfo.maxSpeed = 300;
console.log(carInfo); // { name: 'ํ
์ฌ๋ผ', year: 2022, maxSpeed: 300 }
๐ก ๊ฐ์ฒด ์์ฑ ์์ delete ํค์๋๋ฅผ ๋ช ์ํ๋ฉด ํด๋น ์์ฑ์ด ์ญ์ ๋ฉ๋๋ค.
delete carInfo.maxSpeed;
console.log(carInfo); // { name: 'ํ
์ฌ๋ผ', year: 2022 }
๊ฐ์ฒด ๋ฉ์๋
- ๊ฐ์ฒด ๋ฉ์๋๋ ๊ฐ์ฒด ๋ด๋ถ์์ ๋์ํ๋ ํจ์ ์ ๋๋ค. ๋ฉ์๋๋ ์์ฑ์ผ๋ก ์ ์ ๋ฉ๋๋ค.
let person3 = {
name : "ํ๊ธธ๋",
age : 18,
sayHello : function() {
console.log(`Hello~ my name is ${this.name}`);
}
};
person3.sayHello(); // Hello~ my name is ํ๊ธธ๋
๊ฐ์ฒด ์์ฑ์(new)
- ๊ฐ์ฒด ์์ฑ์๋ ํ ํ๋ฆฟ์ผ๋ก ์ฌ์ฉํ์ฌ ๋์ผํ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ๊ฐ ์์ฑํ ๋ ์ฌ์ฉํฉ๋๋ค.
- ๊ฐ์ฒด ์์ฑ์๋ ํจ์๋ก ์ ์ ๋ฉ๋๋ค.
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHello = function() {
console.log(`Hello.. my name is ${this.name}`);
};
};
let person4 = new Person("์ด์์ ", 55);
person4.sayHello(); // Hello.. my name is ์ด์์
console.log(person4); // Person { name: '์ด์์ ', age: 55, sayHello: [Function (anonymous)] }