일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준
- java
- 리트코드
- DP
- VIM
- Graph
- 안드로이드
- Redux
- Algorithm
- frontend
- network
- vscode
- 알고리즘
- react
- 그레이들
- 프로그래머스
- 자바
- 다이나믹 프로그래밍
- TypeScript
- Javascript
- Python
- DFS
- CS
- LeetCode
- Data Structure
- db
- Database
- 동적 계획법
- BFS
- git
Archives
- Today
- Total
늘 겸손하게
JavaScript - 객체 속성 규칙 본문
자바스크립트에서 객체는 속성의 집합이며 속성은 키와 값으로 구성된다.
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 |