basic
literals and properties
- class가 없어도 key와 value을 가진 쌍으로 만들 수 있다.
- 자바스크립트는 dynamically typed language 이기 때문에 Object 선언 후에도 key를 선언/삭제가 가능하다.
- 하지만 유지보수 측면에서 좋지 않다.
let person = {name: 'woogie', age: 28};
console.log(person); -> {name: "woogie", age: 28}
person.nation = 'Korea';
console.log(person); -> {name: "woogie", age: 28, nation: "Korea"}
delete person.nation;
console.log(person); -> {name: "woogie", age: 28}
computed properties
- 객체.key 또는 객체['key'] 두 가지로 접근 가능
- 주로 런타임 시에 동적으로 key를 주고 값을 받아야 할 때 사용한다.
- 마찬가지로 선언 후에도 key값을 선언/삭제 가능
function printValue(obj, key) {
console.log(obj[key]);
}
printValue(person, 'name'); -> woogie
printValue(person, 'age'); -> 28
constructor function
function Person(name, age) {
this.name = name;
this.age = age;
}
let person2 = new Person('woogie2', 25);
console.log(person2); -> Person {name: "woogie2", age: 25}
in operator
- 해당하는 오브젝트 안에 key가 있는지 없는지 확인 하는 것
console.log('name' in person); -> true
console.log('nation' in person); -> false
for..in, for..of
- for..in: 맵구조의 객체에서 key 값을 기준으로 value를 뽑아내는 방법
- for..of: 리스트 구조의 객체에서 값을 뽑아내는 방법
for(let key in person){
console.log(person[key]);
}
-> woogie
-> 28
const array = [1,2,3,4];
for(let value of array){
console.log(value);
}
-> 1
-> 2
-> 3
-> 4