행복을 담는 블로그
[Javascript] 객체와 객체 메소드 / Object & Object Method 본문
📕 Javascript 객체와 객체 메소드
📌 객체 (object) 란?
: key-value pair
형태를 가진 데이터 타입
- 하나의 변수에 여러개의 값을 넣을 수 있다!
- value에 올 수 있는 data type의 형식에는 제한이 없다!
1. 객체 생성 방법
1) 기본적인 객체 생성 방법
중괄호{}
: 객체 생성콜론(:)
: key : value 작성쉼표(,)
: key-value pair 구분
let person = {
name:'홍길동',
age : 30,
gender : "남자",
};
2) 생성자 함수를 이용한 객체 생성 방법
function Person(name, age,gender){
this.name = name;
this.age = age;
this.gender = gender;
}
let person1 = new Person("홍길동", 30, "남자");
let person2 = new Person("홍길순", 20, "여자");
▶️ 생성자 함수 Person()을 이용하여 객체 person1 과 person2를 생성
2. 객체 속성 접근하는 방법
let person = {
name:'홍길동',
age : 30,
gender : "남자",
};
console.log(person.name); // 홍길동
console.log(person.age); // 30
console.log(person.gender); // 남자
▶️ 객체.속성 이름
형태 : 객체 이름 뒤에 점(.)을 찍어서 접근하고자 하는 속성 이름 입력!
3. 객체 메소드
✅ Object method (메소드)
: 객체가 가진 여러가지 기능 /Object.method 이름()
형태
1) Object.key()
: key를 가져오는 method
let person = {
name:'홍길동',
age : 30,
gender : "남자",
};
let keys = Object.keys(person);
console.log('keys =>', keys) // keys => ["name", "age", "gender"]
2) Object.values()
: value 값들을 가져오는 method
let values = Object.values(person);
console.log('values =>', values) // vlaues => ["홍길동", 30, "남자"]
3) Object.entries()
: key-value를 묶어서 배열로 만든 배열! (2차원 배열)
let entries = Object.entries(person);
console.log('entries =>', entries); // entries => [ [ 'name', '홍길동' ], [ 'age', 30 ], [ 'gender', '남자' ] ]
4) Object.assign()
: 객체를 복사한다.
let newPerson = {};
Object.assign(newPerson, person, {age : "35"});
console.log('newPerson=>', newPerson); //newPerson=> { name: '홍길동', age: 35, gender: '남자' }
▶️ Object.assign() 메소드(method)를 이용하여 newPerson이라는 새로운 객체(object) 생성
5)객체 비교
- 객체는 크기가 매우 크다!
= 메모리에 저장 시, 별도의 공간에 저장한다! = 각자의 고유한 주소값을 가진다!
// person1 별도 공간에 대한 주소 존재
let person1 = {
name:'홍길동',
age : 30,
gender : "남자",
};
// person2 도 별도 공간에 대한 주소가 존재
let person2 = {
name:'홍길동',
age : 30,
gender : "남자",
};
console.log(person1 === person2); //false
🤨 왜 person1 과 person2 두 개의 객체는 같지 않는가?
: person1과 person2 객체는 각각 가지고 있는 주소가 다르다. 그러므로 모든 값이 다 동일하지 않다.
let str1 = "aaa"; let str2 = "aaa"; console.log(str1 === str2); // true
두 str이 동일하듯이, 서로 다른 주소값을 가지고 있는 객체를 문자열화 시킨다.
= 객체 안에 들어 있는 문자들만 비교해보겠다.
- JSON.stringify() 함수 : '문자열화' 시킨다.
console.log(JSON.stringify(person1)===(JSON.stringify(person2))) // true
6) 객체 병합
📌 ...
: spread operator (전개 연산자)
: 중괄호를 풀어서 없애고, 그 안의 key-value 값을 모두 적어줘.(= 병합 해줘)
let person1 = {
name:'홍길동',
age : 30,
};
let person2 = {
gender : "남자",
};
let perfectMan = {...person1, ...person2};
console.log(perfectMan); // { name: '홍길동', age: 30, gender: '남자' }
'FrontEnd > Javascript' 카테고리의 다른 글
[강의 정리 노트] JS 문법 종합반 1주차 (2) | 2024.01.02 |
---|---|
[Javascript] 배열과 배열 메소드 / Array & Array Method (2) | 2024.01.02 |
[Javascript] 조건문 (if, else if, else, switch) (0) | 2024.01.02 |
[Javascript] 연산자 (Operators) (0) | 2024.01.02 |
[Javascript] 데이터 타입(data type) (0) | 2023.12.30 |