객체 : key-value pair의 형태이며, 하나의 변수에 여려 개의 값을 넣을 수 있다.
1. 객체 생성 방법
1-1. 기본적인 객체 생성 방법
let person = {
name : "홍길동",
age : 30
};
1-2. 생성자 함수를 이용한 객체 생성 방법(this)
fuction person(name, age, gender) {
this. name = name;
this. age = age;
this. gender = gender;
}
2. 접근하는 방법
console. log(객체이름. 객체의 key);
console. log(person. name);
-> 이름이 결과값으로 출력된다.
3. 객체 메소드(객체가 가진 여러가지 기능 : Object.~~~)
3-1. Object. key() : key를 가져오는 메소드
let person = {
name : "홍길동:
age : 30,
gender : "남자"
};
let keys = Object. keys(person);
console.log("keys =>", keys);
-> key값인 'name', 'age', 'gender' 라는 결과값이 나온다.
3-2. values
let values = Objcet. values(person);
console. log("values =>", values);
-> values값인 홍길동, 30, 남자가 결과값으로 나온다.
3-3. entries : key와 value를 묶어서 배열로 만든 배열(2차원 배열)
let entries = Object.entries(person);
console.log("entries => ", entries);
-> [key, values]로 묶은 값들이 나온다.
3-4. assign : 객체를 복사한다.
Object. assign(어디에다가 복사할지, 무얼 복사할지)
ex)
let newperson = {};
Object.assign(newperson, person);
console.log(newperson)
-> 만약 복사는 그대로 하고 싶은데 한가지만 변경하고 싶을 때
Object. assign(어디에다가 복사할지, 무얼 복사할지(바꾸고 싶은 key : 바꿀 값))
으로 입력하면 한가지만 바꿔진다.
ex)
let newperson = {};
Object.assign(newperson, person(gender : "여자");
console.log(newperson)
3-5. 객체 비교
보통 비교를 위해서는
console. log(A===B);
위와 같이 비교를 하는데, 객체의 경우 크기가 크기 때문에 메모리에 저장을 할 때 별도의 공간에 저장을 해야한다.
각 객체는 별도 공간에 저장이 되어있는 상태에기 때문에 주소가 달라서 객체를 비교할 때 false로 나온다.
console. log(JSON.stringify) -> 객체를 문자열로 변환시키는 코드이다.
ex) console. log(JSON.stringify(객체1===객체2)로 넣으면 안에 내용을 비교할 수 있다.
3-6. 객체 병합
let A = {...person1, ...person2};
-> person1 객체를 풀어서 배열, preson2 객체를 풀어서 배열하여 둘을 병합한다.