JavaScript

자바스크립트 객체

무녀누 2024. 4. 22. 17:14

객체 선언하는 법

key - value fair

key에는 어떤 타입도 사용 가능하다.

1. 객체 생성 방법

1-1. 가장 기본적인 객체 생성 방법

 

let person = {

name : "문현후",

age : 25,

gender : "남자"

};

 

이런 식으로 작성한다.

 

1-2. 생성자 함수를 이용한 객체 생성 방법

 

function Person(name, age, gender) {

this.name = name;

this.age = age;

this.gender = gender;

}

let person1 = new Person{"문현후", 25, "남자"};

let person2 = new Person{"문현순", 21, "여자"};

 

이런 식으로 작성 가능하다.

 

2. 접근하는 방법

예시

 

console.log(person.name);

console.log(person.age);

console.log(person.gender);

 

선언한 변수뒤에 .붙이고 필요한 해당 키를 입력하면 그 키에만 접근 가능하다.

 

3. 객체 메서드

객체 메서드란 객체가 가진 여러 가지 기능이라고 생각하면 된다.

 

3-1. Object.key()

 

key를 가져오는 메서드

예시

 

let person = {

name : "문현후",

age : 25,

gender : "남자"

};

 

let keys = Object.keys(person);

console.log("keys => ", keys);

 

이렇게 작성하면 배열형태로 key들이 출력된다.

 

3-2. values

 

예시

 

let values = Object.values(person);

console.log("values => ", values);

 

3-3 entries

 

key와 value를 묶어서 만든 2차원 배열

예시

 

let entries = Object.entries(person);

console.log("entries => ", entries);

 

3-4. assign

 

객체 복사

예시

 

let newPerson = {};

Object.assign(newPerson, person);

console.log("newPerson => ", newPerson);

 

설명을 읽으면 첫 번째 매개변수는 어디에 복사할래, 두 번째는 뭘 복사할래 이 의미이다.

 

key 값을 변경하고 싶다면

예시

 

let newPerson = {};

Object.assign(newPerson, person, {age: 27});

console.log("newPerson => ", newPerson);

 

이런 식으로 세 번째 매개변수값에 변경할 키값을 중괄호로 넣어주면 된다.

 

3-5. 객체 비교

 

예시

 

let person1 = {

name : "문현후",

age : 25,

gender : "남자"

};

let person2 = {

name : "문현후",

age : 25,

gender : "남자"

};

console.log("answer => ", person1 == person2);

 

이런 식으로 같냐고 물어보는 코드를 짜면

출력값은 false로 나온다.

똑같이 문자열로

 

let str1 = "aaa";

let str2 = "aaa";

console.log("answer => ", str1 == str2);

 

이렇게 작성하면 이번엔 true가 나온다.

문자열은 같으면 true반환이지만 

왜 객체는 같은데 false로 반환할까?

 

간략하게 얘기하자면 객체는 객체자체가 크기가 크다

그래서 메모리에 저장할 때 별도의 공간에 저장을 하는데

person1 객체 저장소의 주소와 person2 주소가

서로 다르기 때문에 false를 출력한다.

이 내용은 나중에 더 자세히 알아보겠다.

 

하지만 간단하게 true로 반환하는 방법이 있는데

 

console.log(JSON.stringify);

 

를 사용하면 객체 주소를 문자열화 해주기 때문에

아까 문자열 비교는 true로 반환하듯이

객체도 문자열화했기 때문에 true로 반환해 준다.

 

console.log(JSON.stringify(person1) === JSON.stringify(person2));

 

3-6. 객체 병합

 

예시

 

let person1 = {

name : "문현후",

age : 25,

};

let person2 = {

gender : "남자"

};

 

이 두 개의 객체를 합쳐야 한다면

 

... : spread operator를 사용한다.

 

let perfectMan = {...person1, ...person2};

console.log(perfectMan);

 

이렇게 작성하면 둘이 합쳐진 perfectMan객체로 병합된다.

'JavaScript' 카테고리의 다른 글

자바스크립트 반복문(1)  (0) 2024.04.22
자바스크립트 배열  (0) 2024.04.22
자바스크립트 조건문 중첩, 조건부 실행 등  (0) 2024.04.22
자바스크립트 조건문  (1) 2024.04.22
스코프 및 화살표함수  (0) 2024.04.22