1.여러개의 property를 갖는 데이터 타입
1. 중괄호를 사용해서 정의
2. 내부의 요소는 property (key + value)
3. Dot notation, Bracket notation 으로 접근, 새로운 property 생성
점을 사용하는 접근 방법
let userData = {
name: 'Jason'
age: 25,
gender: 'Male'
email: 'jason@test.com'
};
userData.name
⇒'Jason'
userData.email = jason@test.com
대괄호를 사용하여 접근하는 방법
let userData = {
name: 'Jason',
age: 25,
gender: 'Male',
email: 'jason@test.com'
};
userDate['name']
⇒'jason'
userData['email'] = 'jason@test.com'
let userData = {
name: 'Jason',
age: 25,
gender: 'Male'
};
:으로 key와 value 구분 각 property는 ,로 구분
name/ age/ gender ⇒ key (: 앞에 있는 값)
’Jason’/ 25/ ‘Male’ ⇒ value (: 뒤에 있는 값)
주어진 객체의 key만 가져와서 배열에 담아주는 method
Object.keys(userData)
=> ['name', 'age', 'gender']
주어진 객체의 value만 가져와서 배열에 담아주는 method
Object.values(userData)
=> ['Jason', 25, 'Male']
모든 프로퍼티와 값을 배열로 반환하는 method
Object.entries(userData)
=> [Array(2), Array(2), Array(2)]
0: (2) ['name', 'Jason']
1: (2) ['age', 25]
2: (2) ['gender', 'Male']
const target = { a: 1, b: 2 };
const sources = [
{ b: 4, c: 5 },
{ b: 6, c: 7, d: 8 },
{ b: 9, c: 10, d: 11 },
{ b: 12, c: 13, d: 14, e: 15 },
];
복사할 객체를 스프레드 연산자로 넣어줬을 때
Object.assign(target, ...sources);
console.log(target);
=>{a: 1, b: 12, c: 13, d: 14, e: 15}
a:1
b:12
c:13
d:14
e:15
복사할 객체를 그냥 넣었을 때
{0: {…}, 1: {…}, 2: {…}, 3: {…}, a: 1, b: 2}
0:{b: 4, c: 5}
1:{b: 6, c: 7, d: 8}
2:{b: 9, c: 10, d: 11}
3:{b: 12, c: 13, d: 14, e: 15}
a:1
b:2
!! method로 키와 값을 배열에 사용하는 이유: 객체의 경우 배열과 다르게 순서가 존재하지 않음
⇒반복문에서 사용하기 까다로움
⇒반복문은 같은 형식을 가진 여러개의 데이터에 똑같은 로직을 반복 적용시키기 위해서 사용하기 때문에 배열이 유용함