늘 겸손하게

JavaScript - 객체 속성 규칙 본문

Programming/JavaScript

JavaScript - 객체 속성 규칙

besforyou999 2023. 7. 15. 20:41

자바스크립트에서 객체는 속성의 집합이며 속성은 키와 값으로 구성된다.

 

const person = {
    name: 'Jack',
    age: 25,
}

 

 

속성 로 사용할 수 있는 값은 '빈 문자열을 포함하는 모든 문자열 또는 심벌 값'이고

 

속성 으로 사용할 수 있는 값은 '자바스크립트에서 사용할 수 있는 모든 값' 이다.

 


속성 키

 

속성 는 일반적으로 문자열을 사용하고 따옴표로 묶을 필요는 없으나 식별자 네이밍 규칙을 따르지 않는다면 따옴표로 감싸야 한다.

 

const person = {
    firstName: 'Jack',
    'last-name': 'Lee',
}

 

 

빈 문자열 또한 속성의 키가 될 수 있으나 키로서 의미가 없으므로 권장하지 않는다.

 

const foo = {
    '': ''
};

console.log(foo); // { "" : "" }

 

 

속성 키에 문자열 이외의 값을 사용하면 암묵적 타입 변환을 통해 문자열이 된다.

 

const foo = {
    0: 1,
    1: 2,
    2: 3,
};

console.log(foo); // {0: 1, 1: 2, 2: 3}

 

 

속성 키를 중복 선언할 경우 값이 덮어쓰인다.

 

const foo = {
    name: 'Lee',
    name: 'Jack',
}

console.log(foo); // {name: 'Jack'}

 


프로퍼티 접근 방식

 

프로퍼티 접근 방식에는 두 가지가 있다.

 

첫 번째는 마침표 표기법

두 번째는 대괄호 표기법

 

단, 대괄호 표기법으로 속성에 접근하려 할 경우 속성 키는 반드시 따옴표로 감싼 문자열이어야 한다.

 

const person = {
    name: 'Lee',
}

console.log(person.name); // Lee

console.log(person['name']); // Lee

 

 

만약 속성 키가 식별자 네이밍 규칙을 준수하지 않는 이름이라면 마침표 표기법으로 접근은 불가하고 반드시 대괄호 표기법으로 접근하여야 한다.

 

const person = {
    'last-name': 'Lee',
}

person.'last-name';  // 오류

person['last-name']; // Lee

 


프로퍼티 동적 생성

 

마침표 표기법으로 속성을 동적 생성할 수 있다.

 

const person = {
    name: 'Lee'
}

person.age = 20;

console.log(person); {name: "Lee", age: 20}

 


프로퍼티 삭제

 

delete 연산자로 객체의 속성을 삭제할 수 있다.

 

const person = {
    name: 'Lee'
};

person.age = 25;

delete person.age;

console.log(person); // {name: 'Lee'}

 


ES6에서 추가된 객체 리터럴 확장 기능

 

1. 프로퍼티 축약 표현

 

let x = 1, y = 2;

const obj = {x, y};

console.log(obj); // {x: 1, y: 2}

 

2. 메서드 축약 표현

 

ES6에서는 메서드를 정의할 때 function 키워드를 생략한 축약 표현을 사용할 수 있다.

 

ES5

const obj = {
    name: 'Lee',
    sayHi: function() {
        console.log("Hi! " + this.name);
    }
};

obj.sayHi(); // Hi! Lee

 

ES6

const obj = {
    name: 'Lee',
    sayHi() {
        console.log('Hi! ' + this.name);
    }
};

obj.sayHi(); // Hi! Lee

'Programming > JavaScript' 카테고리의 다른 글

JavaScript - 숫자 타입  (0) 2023.08.06
JavaScript - for / in & for / of  (0) 2023.08.01
JavaScript - 암묵적 타입 변환  (0) 2023.07.15
JavaScript : + 연산자 문자열 연결  (0) 2023.07.15
JavaScript - fetch  (0) 2023.06.12