Programming

객체

c29130811 2021. 5. 17. 22:38

원시 타입은 단 하나의 값만 나타내고 불변이지만, 객체는 이와 다르게 여러 가지 값이나 복잡한 값을 나타낼 수 있으며, 변할 수도 있다. 

 

객체에도 중괄호, 즉 { }를 사용하는 리터럴 문법이 있으며, 중괄호 안에 객체의 콘텐츠로 키(key), 값(value)로 구성된 프로퍼티(property)를 추가 할 수 있으며, 키에는 문자형, 값엔 모든 자료형이 추가 될 수 있다.

// 객체 생성자 문법
let person1 = new Object();

// 리터럴 문법
let person2 = {
  name: 'june',
  age: 20
};

 

객체 프로퍼티 추가

let person4 = {};
person4.name = "a";
person4["working"] = true;

// person4
// {name: "a", working: true}

 

객체 프로퍼티 값 얻기

프로퍼티 이름에 유효한 식별자를 써야 멤버 접근 연산자(member access operation) .을 사용할 수 있다.

프로퍼티 이름에 유일한 식별자가 아닌 이름을 쓴다면, 계산된 멤버 접근 연산자(computed member access operation) []을 사용해야 한다. 

 

let person5 = {
    "family-name" : "a",
}

person5["family-name"] //"a"

위 상황처럼 key에 띄어쓰기 또는 대시 등의 값이 입력된 상태로, 접근 할 때는 대괄호를 통해 value로 접근한다. 

 

객체 프로퍼티 삭제

delete 를 사용하여 프로퍼티를 삭제할 수 있다.

let person6 = {
    name: 'c',
    age: 20
}
delete person6.name //true

person6
// {age: 20}

단축 프로퍼티

ES6에 추가된 기능으로 객체의 프로퍼티 일부가 이미 같은 이름의 변수로 존재할 경우 사용한다.

 

const name = "abc";
const user = {
    age: 24,
    name, // 단축
}

user
//{age: 24, name: "abc"}
728x90