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 | 31 |
Tags
- 그리디
- 자바스크립트
- computerscience
- js
- LinkSnap
- 부트캠프
- 알고리즘
- 컴퓨터공학
- 국비지원취업
- 국비지원
- 패스트캠퍼스
- CS
- git
- github
- nodejs
- cpu
- KAKAO
- 너비우선탐색
- 백준
- 프론트엔드개발자
- Javascript
- CSS
- DFS
- BFS
- 코딩테스트
- 코테
- 호이스팅
- 야놀자
- html/css/js
- 컴퓨터과학
Archives
- Today
- Total
My Boundary As Much As I Experienced
JS) 선택적 체이닝(Optional Chaining) 본문
선택적 체이닝은 있을수도 있고, 없을 수도 있는 데이터를 다룰 때 유용하다.
아래와 같은 user 2명이 있다고 해보자.
const userA = {
name: "bumang",
age: 20,
address: {
country: "korea",
city: "gimpo",
},
};
const userB = {
name: "neo",
age: 20,
};
userA는 address라는 속성과 값을 가지고 있지만, userB는 가지고 있지 않다.
이 상황에서 getAddress라는 함수를 만들어서 사용하고자 할 때,
function getAddress(user) {
return user.address.city;
}
console.log("!", getAddress(userB));
//reference error 발생!
userB의 Address를 반환받고 싶은데 반환 받을 수가 없다...
데이터가 이렇게 주어질 경우에도.. 레퍼런스 에러를 내지 않으려면
function getCity(user) {
return user.address?.city || "주소가 없습니다."; // or 선택자로 좌변이 undefined일 시 안내 문구가 나오게 할 수 있다.
}
console.log(getCity(userA)); // Gimpo
console.log(getCity(userB)); // undefined
선택적 체이닝을 이용할 수 있다. 존재하지 않을 가능성이 있는 문제적인 속성 점 선택자에 ? 마크를 붙임으로써
이 값이 없을 경우에 undefined를 반환하도록 만들 수 있다.
(ex .address?.city)
'FrontEnd > Javascript(Vanilla)' 카테고리의 다른 글
JS) 매개변수 패턴(Parameter Pattern) (0) | 2023.07.20 |
---|---|
JS) 호이스팅(Hoisting)이란? (var, let, const의 차이) (0) | 2023.07.20 |
JS) And연산자(&&), Or연산자(||), Nullish연산자(??) (0) | 2023.07.20 |
JS) While문, Do-While문 (0) | 2023.07.20 |
JS) 구조 분해 할당(Destructuring Assignment)이란? (0) | 2023.07.18 |