반응형
📝Object (객체)
var book ={
title : "채식주의자",
author : "한강",
price : "120000"
}
console.log(book.title); // 채식주의자
var book =[
{
title : "채식주의자",
author : "한강",
price : "120000"
},
{
title : "육식주의자",
author : "두강",
price : "130000"
}
] // 배열 + 객체
console.log(book[0].title); // 채식주의자
console.log(book[1].title); // 육식주의자
// 객체
자바스크립트는 객체를 지정할 수 있고 속성 : 속성값으로 이루어져있습니다. 또한 배열로 여러개를 만들 수도 있습니다.
// Object (you can change inner value even if const)
const person = {name : 'smith', age : 20};
console.log(`name : ${person.name}, age : ${person.age}`);
person.name = 'hommer'
console.log(`name : ${person.name}, age : ${person.age}`);
값에 직접 접근해 해당 내용의 값을 바꿀수도 있습니다.
📝Object Key를 변수로 할당하기 [Computed property]
// Computed property
let a = 'age';
const user1 = {
name : 'Mike',
// age : 30
[a] : 30 // "키"에 변수를 할당할 수 있다
}
console.log(user1); //{ name: 'Mike', age: 30 }
const user2 = {
[1 + 4] : 5,
["안녕" + "하세요"] : "Hello"
}
console.log(user2); // { '5': 5, '안녕하세요': 'Hello' }
📝Object 복사하기 (잘못된 버전) [주소복사]
const user = {
name : 'Mike',
age : 30
}
const cloneUser = user; // 주소 복사
/** 값 변화 **/
cloneUser.name = "Bob";
user.age = 10;
console.log(`name : ${user.name}, user.age : ${user.age}`); // name : Bob, user.age : 10
console.log(`name : ${cloneUser.name}, user.age : ${cloneUser.age}`); // name : Bob, user.age : 10
그냥 = 으로 퉁쳐버리면 값이 복사가 되는게 아니라 주소가 복사됩니다. 그래서 서로에게 영향을 끼치기 때문에 생각한대로 프로그램이 안 돌아갈 수 있습니다.
📝Object 복사하기 [값 복사]
const user = {
name : 'Mike',
age : 30
}
const realCloneUser = Object.assign({}, user);
realCloneUser.name = "Bob";
user.age = 10;
console.log(`name : ${user.name}, user.age : ${user.age}`); // name : Mike, user.age : 10
console.log(`name : ${realCloneUser.name}, user.age : ${realCloneUser.age}`); // name : Bob, user.age : 30
Object.assign( ${기존 객체 값 [없을 시 {} 빈 값]}, ${복사할 값}) 을 이용해 값을 복사할 수 있습니다
📝기존 Object에 값 추가 및 덮어씌우기(overwrtie) 및 객체 합치기
const user = {
name : 'Mike',
age : 30
}
/** --- Clone Json Object [add] --- **/
const cloneUser1 = Object.assign({gender:'male'}, user); // 복제 + 원하는 값 추가
console.log(cloneUser1); // { gender: 'male', name: 'Mike', age: 30 }
/** --- Clone Json Object [overwrite] --- **/
const cloneUser2 = Object.assign({name:'Bob'}, user); // 복제 + 원하는 값 추가
console.log(cloneUser2); // { gender: 'male', name: 'Mike', age: 30 }
/** --- Merge Json Object --- **/
const name = {name : 'Mike'}
const age = {age : 40}
const gender = {gender : 'female'}
const mergeUser = Object.assign(user, age, gender);
console.log(mergeUser); // { name: 'Mike', age: 40, gender: 'female' }
Object.assign( ${합칠 객체}, ${합칠 객체} ...) 을 이용해 객체를 합칠 수 있습니다
📝Object Key, Value 추출하기
const user = { name: 'Mike', age: 40, gender: 'female' }
/** --- Extract Json Keys, Values --- **/
const keys = Object.keys(user);
const values = Object.values(user);
console.log(keys); // [ 'name', 'age', 'gender' ]
console.log(values); // [ 'Mike', 40, 'female' ]
/** --- Extract Json Keys + Values --- **/
const entries = Object.entries(user);
console.log(entries); // [ [ 'name', 'Mike' ], [ 'age', 40 ], [ 'gender', 'female' ] ]
- Object.keys( ${키를 추출할 객체} ) 을 이용해 객체의 키를 배열로 추출할 수 있습니다.
- Object.keys( ${값을 추출할 객체} ) 을 이용해 객체의 값을 배열로 추출할 수 있습니다.
- Object.entries( ${키와 값을 추출할 객체} ) 을 이용해 객체의 키,값을 배열로 추출할 수 있습니다.
🔗 참고 및 출처
https://www.youtube.com/watch?v=6NZpyA64ZUU&list=PLZKTXPmaJk8JZ2NAC538UzhY_UNqMdZB4&index=3
반응형
'[JavaScript] > [JavaScript]' 카테고리의 다른 글
[JavaScript] Arrow Function (애로우 함수) (0) | 2022.09.11 |
---|---|
[JavaScript] 논리 연산자 (null == undefined == 0 == '' == false) (0) | 2022.09.11 |
[JavaScript] user strict (JavaScript 디버그) (0) | 2022.09.11 |
[JavaScript] 자바스크립트 [태그 조작 메소드] 태그 추가 및 삭제, 내용 추가 및 삭제 (empty, remove, html, innerText, innerHTML) (0) | 2022.03.12 |
[JavaScript] 이벤트 바인딩 (0) | 2021.06.29 |