Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- webp
- pm2
- 로드 밸런싱
- workflow
- 렌더링 과정
- ec2
- 무중단
- 성능 개선
- nextJS
- DNS
- 인증서
- 이미지 압축
- gitgub actions
- 자동화
- certbot
- 3-Way HandShake
- 리버스 프록시
- 이미지 포맷 변경
- 검색엔진최적화
- 브라우저
- CI
- SSH
- https
- aws
- 배포
- TLS
- 이미지 최적화
- tcp
- nginx
- SSL
Archives
- Today
- Total
개발일기
JavaScript 객체 접근 방식: obj.key vs obj["key"] vs obj[key] 차이 본문
✅ 객체의 기본 구조
const obj = {
key : value,
};
- 객체는 기본적으로 키(key)와 값(value)로 이루어져 있음
1️⃣ 점 표기법
const obj = {
key : value,
};
console.log(obj.key); // Expected output: "value"
- 가장 일반적인 방식
- 정적인 키를 접근할 때 사용
- 문자열이 아니라 실제 키 이름이어야 함
2️⃣ 대괄호 표기법 - 문자열
const obj = {
key : value,
};
console.log(obj["key"]); // expected output: "value"
- 키 이름을 문자열로 직접 쓸 때 사용
- 키에 공백, 특수문자가 있거나 숫자로 시작할 때도 사용 가능
const obj = {
"my key": 123
};
console.log(obj["my key"]); //expected output: 123
3️⃣대괄호 표기법 - 변수로 동적 접근
const obj = {
myKey : value,
};
const key = "myKey";
console.log(obj[key]); //Expected output: "value"
- 키 이름이 변수로 주어질 때 사용
- 어떤 키를 접근할지 동적으로 정해지는 경우 필수
❓여기서 동적으로 사용된다는건 뭘까?
1. 정적키 접근
const user = {
name : "apple",
age : 20
};
console.log(obj.name) //항상 name 키를 접근(고정)
2. 동적키 접근
const user = {
name: "apple",
age: 20,
};
const key = "age";
console.log(user[key]); //expected output: 20
여기서 "age"라는 키는 변수 key에 담겨있다.
즉, 어떤 키를 접근할지 실행 중에 정해지는 것을 동적 접근 이라고 한다.
간단한 예시 보기
const input = prompt("보고 싶은 정보 (name 또는 age)");
console.log(user[input]); // 사용자가 입력한 키에 따라 다른 값을 보여줌
name 입력 -> user[name] -> "apple"
age 입력 -> user[age] -> 20
⚠️ 주의할 점
const obj = {
myKey : value,
};
const key = "myKey";
console.log(obj.key); //Expected output: undefined
console.log(obj["key"]); //Expected output: undefined
console.log(obj[key]); //Expected output: "value"
'Javascript' 카테고리의 다른 글
함수 호이스팅 (0) | 2024.07.18 |
---|---|
메서드 기록해두기(split, slice, splice) (0) | 2024.06.10 |
자바스크립트 구조분해할당 (0) | 2024.03.31 |
객체 타입의 얕은 복사와 깊은 복사 (0) | 2024.03.07 |
원시타입과 객체타입 (0) | 2024.03.06 |