[javascript] Object - basic

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

  • class의 생성자 처럼 사용
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

links

social