250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 자바스크립트
- 리액트
- useState
- 타입스크립트
- 내일배움캠프 최종 프로젝트
- typeScript
- 프로그래머스
- useEffect
- Next 팀 프로젝트
- 파이썬 반복문
- 타입스크립트 리액트
- React Hooks
- JavaScript
- 내일배움캠프 프로젝트
- 내배캠 프로젝트
- 파이썬 slice
- 파이썬 딕셔너리
- 파이썬 enumerate
- 내일배움캠프
- 리액트 프로젝트
- tanstack query
- 타입스크립트 props
- 파이썬 for in
- 코딩테스트
- 파이썬 replace
- REACT
- 파이썬 for
- 리액트 공식문서
- 리액트 훅
- 한글 공부 사이트
Archives
- Today
- Total
sohyeon kim
[JS] 객체 데이터 접근, 객체 메소드, 비교, 병합 본문
728x90
객체의 데이터를 가져와보자!
let aoto = {
name: "yae",
bornYear: 2023,
isVeryNice: ture,
hateFood: null,
favoriteMovie: {
title: "괴물",
leadRole: "쿠로카와 소야", "히이라기 히나타"
}
}
💡 점 표기법
console.log(aoto.bornYear) // 2023
❗️주의) 점 표기법은 따옴표로 감싸진 값은 가져올 수 없다!
let aoto = {
name: "yae",
"born Year": 2023
}
console.log(aoto.born Year) // XXX 접근불가 XXX
console.log(aoto."born Year") // XXX 접근불가 XXX
💡 대괄호 표기법 (위 상황 해결 가능)
let aoto = {
name: "yae",
"born Year": 2023
}
console.log(aoto["born Year"]) // 2023
console.log(aoto["born " + "Year"]) // 2023
let propertyName = "name"
console.log(aoto[propertyName]) // yae
대괄호를 열면 문자열로 만들 수 있는 어떤 방법이든 사용 가능하다.
또한, 변수를 통해 불러오는 것도 가능하다!
➕ 아래처럼 ``안에서 key를 가져올 땐 대괄호 표기법만 가능
for (let key in aoto) {
console.log(`${key} : ${aoto[key]}`);
}
// name : yae
// born Year : 2023
💡 객체 안의 객체 가져오기
let aoto = {
favoriteMovie: {
title: "괴물",
leadRole: "쿠로카와 소야", "히이라기 히나타"
}
}
console.log(aoto.favoriteMovie.title) // "괴물"
console.log(aoto.favoriteMovie.["title"]) // "괴물"
그대로 이어 붙여 작성해 주면 되고,
마찬가지로 따옴표로 감싸져 있는 값이라면 대괄호를 사용한다!
💡 존재하지 않는 값을 입력하면?
console.log(aoto.favoriteMovie.ost) // undefined
ERROR 가 아닌 undefined 가 출력된다.
💡 객체의 메소드를 이용해보자!
Object.keys : key 들을 가져오는 메소드
let person = {
name: "aoto",
age: 20,
gender: "female",
};
let keys = Object.keys(person);
console.log(keys); // [ 'name', 'age', 'gender' ]
Object.values : value 들을 가져오는 메소드
let values = Object.values(person);
console.log(values); // [ 'aoto', 20, 'female' ]
Object.entires : key 와 value 를 묶어서 배열로 만든 배열 (2차원 배열)
let entires = Object.entries(person);
console.log(entires); // [ [ 'name', 'aoto' ], [ 'age', 20 ], [ 'gender', 'female' ] ]
Object.assign : 객체 복사
let newPerson = {};
Object.assign(newPerson, person);
console.log(newPerson); // { name: 'aoto', age: 20, gender: 'female' }
❗️ 복사는 하지만 age를 30 으로 바꾸고 싶다면?
let newPerson2 = {};
Object.assign(newPerson2, person, { age: 30 });
console.log(newPerson2); // { name: 'aoto', age: 30, gender: 'female' }
💡 객체 비교
객체는 상당히 크기가 크다. 그래서 메모리에 저장할 때 같은 값이라도 다른 공간에 저장한다.
그래서 같아 보여도 서로 다른 값이라고 반환하는 것!
let apple = {
color: "red",
};
let apple2 = {
color: "red",
};
console.log(apple === apple2); // false
➕ JSON.stringify 는 객체를 문자열로 반환해준다. 그래서 이런 식으로는 일치 비교가 가능하다.
console.log(JSON.stringify(apple) === JSON.stringify(apple2)); // true
💡 객체 병합 : 전개 연산자 사용
let apple3 = {
taste: "sweet",
};
let perfectApple = {
...apple,
...apple3,
};
console.log(perfectApple); // { color: 'red', taste: 'sweet' }
728x90
반응형
'JavaScript' 카테고리의 다른 글
[JS] Date() 데이트 객체, 날짜 가져오기 (0) | 2024.01.02 |
---|---|
[JS] Object Property 객체 프로퍼티 수정, 추가, 삭제, 유무 확인 (0) | 2023.12.29 |
[JS] Optional Parameters 옵셔널 파라미터 (0) | 2023.12.29 |
[JS] null과 undefined의 차이 (0) | 2023.12.29 |
[JS] 비교 연산자 ==, !=, ===, !== 동등 연산자와 일치 연산자 (0) | 2023.12.28 |