티스토리 뷰
Quick JavaScript (10) Object - MemberShip
MathTrauma 2022. 10. 24. 16:32
1. 속성 존재 확인
객체는 여러 가지 정보를 모아둔 container 역할을 기본으로 한다.
따라서 내부에 어떤 정보가 있는지 확인할 수 있어야 한다.
let obj = {
id : 'trauma',
test(){
console.log('Hi!');
}
};
1. 객체에 속성이 정의되지 않았다면 undefined 일 것이다. 이를 이용해서 특정 속성이 객체에 존재하는지 확인할 수 있다.
2. 우아하게 ' in ' 연산자를 이용해서 같은 일을 할 수 있다.
obj.id !== undefined //true
'id' in obj; // true
obj.address !== undefined //false
'address' in obj; //false
2. Object.hasOwnProperty( )
'hasOwnProperty' 라는 함수 이름이 모든 것을 설명해 준다.
obj.hasOwnProperty('id') // true
앞에서 언급한 'in' 연산자와의 차이점은 속성이 물려받은(inherited) 것인지 여부를 알 수 없다.
아직 상속에 관해 상세히 다루지 않았다.
객체는 여러가지 방법으로 상속되고 이렇게 만들어진 새로운 객체는 원래 객체의 속성들을 물려받는다는 것만 알고 넘어가자.
3. 객체의 모든 속성을 알고 싶을 때
다음의 코드면 충분할 것이다.
위의 코드에서는 for ... in ... 을 사용했다.
4. Object.keys( ) , Object.values( ) , Object.entries( )
위의 코드와 동등한 for ... of ... 를 사용하는 다음의 코드와 비교해 보자.
for(const key of Object.keys(obj)){
console.log(key + ' -> ' + obj[key]);
}
for ... in 은 'enumerable' 속성을 모두 조회한다.
반면 for ... of 는 객체가 정의한 iterator 를 사용해서 조회한다.
여기서 Object.keys() 는 Array 를 생성해주니까 of 는 Array 의 iterator 를 사용하게 된다.
Object.values(obj) 이 속성들의 '값'들로 이루어진 Array 를 만들어 줄 것은 짐작이 가능하다.
Object.entries(obj) 는 obj 의 속성과 값의 순서쌍으로 이루어진 Array 를 돌려준다.
for ( const [key, value] of Object.entries(obj)){
console.log(`${key} -> ${value}`);
}
Object 에 대한 못다한 이야기들은 심화된 시리즈에서 다루자.
'Programming Language > JavaScript [초급 -완결]' 카테고리의 다른 글
Quick JavaScript 12 - Function (함수 vs 동작 or 기능) (0) | 2022.11.23 |
---|---|
Quick JavaScript (11) JSON (0) | 2022.10.26 |
Quick JavaScript (9) Object Literal (0) | 2022.10.21 |
Quick JavaScript (8) Array - Iterators (0) | 2022.09.26 |
Quick JavaScript (7) Array 2 (1) | 2022.09.20 |
- Total
- Today
- Yesterday
- stack
- math font
- Aho-Corasick
- shell
- RUBY
- number theory
- fenwick tree
- dynamic programming
- max flow
- BOJ
- bash script
- persistent segment tree
- 정수론
- 다익스트라
- Vim
- python3
- segment tree
- Shell Programming
- JavaScript
- 백준
- Reference
- nearest common ancestor
- javascript array
- lazy propagation
- bash
- script
- C++ big number
- map
- Dijkstra
- 세그먼트 트리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
31 |