일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 비동기프로그래밍
- css
- macos flutter
- 웹 성능
- 풀스택 개발
- jsx
- flutter android sdk
- 코드리뷰
- #프론트엔드개발
- 웹 개발
- React
- html
- 자바스크립트
- 웹 성능 최적화
- 국제화(i18n)
- dom
- Promise
- 퍼포먼스 최적화
- Node.js
- 프라미스체이닝
- fe
- flutter 오류
- cmdline-tools missing
- 패키지 스크립트
- 컴포넌트
- 프론트엔드
- JavaScript
- aondroid toolchain 오류
- 웹개발
- 자바스크립트공부
- Today
- Total
sodol-dotcom
특정 프로퍼티에 괄호 표기법으로 접근하기 본문
자바스크립트에서 객체의 프로퍼티(속성)에 접근하는 방법에는 두 가지(점 표기법, 괄호 표기법)가 있다. 그 중 괄호 표기법이 헷갈려서 남기는 페이지.
1. 객체와 프로퍼티
자바스크립트에서 객체는 여러 개의 값을 저장할 수 있는 데이터 구조이다.
let person = {
name: "John",
age: 30,
hobby: "reading"
};
이 객체는 `name`, `age`, `hobby` 라는 프로퍼티를 가지고 있다.
2. 점 표기법 vs 괄호 표기법
- 점 표기법: `person.name` 이렇게 사용해서 `name` 프로퍼티에 접근할 수 있다.
- 괄호 표기법: `person["name"]` 이렇게 사용해도 `name` 프로퍼티에 접근할 수 있다.
괄호 표기법은 변수나 문자열로 프로퍼티 이름을 동적으로 설정할 수 있어서 더 유용할 때가 있다고 한다.
3. 예시
만약 프로퍼티 이름이 변수에 저장되어 있다면, 점 표기법으로는 접근할 수 없다. 이럴 때 괄호 표기법을 사용하면 유용하다.
3-1. 왜 점 표기법으로 접근할 수 없는가?
점 표기법은 프로퍼티 이름이 코드에 명시적으로 하드코딩되어 있어야 한다. 즉, 프로퍼티 이름이 문자열로 직접 제공되는 경우에만 사용할 수 있다.
let person = {
name: "John",
age: 30
};
console.log(person.name); // "John"
이 경우 `person.name`은 `person` 객체의 `name` 프로퍼티에 직접 접근하는 것이다. 프로퍼티 이름이 하드코딩되어 있으므로 문제가 없다.
하지만 프로퍼티 이름이 변수에 저장되어 있는 경우에는 점 표기법을 사용할 수 없다.
let propertyName = "age";
console.log(person.propertyName); // undefined
위 코드에서 `propertyName` 은 변수로, 점 표기법을 사용할 때 `person.propertyName` 은 `person` 객체의 `propertyName` 이라는 프로퍼티를 찾으려 한다. 하지만 실제로는 `propertyName` 이라는 이름의 프로퍼티가 `person` 객체에 존재하지 않는다.
3-2. 괄호 표기법 사용
따라서, 프로퍼티 이름이 변수로 저장되어 있는 경우에는 괄호 표기법을 사용하여 변수에 저장된 프로퍼티 이름으로 접근해야 한다.
console.log(person[propertyName]); // 30
이렇게 괄호 표기법을 사용하면 변수의 값이 프로퍼티 이름으로 사용될 수 있어서 유언성을 제공한다.
'Fundamentals > JavaScript' 카테고리의 다른 글
reduce() 메소드 (0) | 2024.09.13 |
---|---|
고정된 프로퍼티 이름과 동적 프로퍼티 이름에 접근하는 방법 (0) | 2024.09.13 |
함수 스코프, 지역 스코프, 블록 스코프 (0) | 2024.09.12 |
함수 선언문의 스코프 (0) | 2024.09.12 |
함수 전달 방식에 대한 이해: 함수 선언 vs. 기명 함수 표현식 (0) | 2024.09.10 |