자바스크립트 신문법 정리(optional chaining, nullish coalescing 연산자)

2022. 6. 18. 14:54· Javascript/문법
목차
  1.  
  2. user.age와 user?.age의 차이
  3.  
  4. when to use?
  5. ||
  6. ??

코딩애플 영상 참고

다음 영상을 참고하여 정리한 글입니다.

 

 

optional chaining 연산자

?. 

var use = {
    name : 'kim',
    age : 20
}

console.log(user.age) // 20
console.log(user?.age) // 20

 

user.age와 user?.age의 차이

  • user가 null이거나 undefined이면 user.age가 에러를 뱉는다.
  • user가 null이거나 undefined여도 user?.age는 undefined를 남긴다.

 

 

when to use?

  • 중첩된 object자료에서 자료를 뽑을 때 reference error 없이 안전하게 뽑을 수 있음
var user = {
    name: 'kim'
};

console.log(user.age) // undefined

console.log(user.age.value) // Error발생!
// 왜냐하면 user.age가 undefined이니
// undefined.value => 에러 발생
// null.value => 에러 발생

console.log(user.age?.value) // undefined

optional chaing 연산자는 에러를 해결하는 것이 아니라 감추는 문법이니 꼭 필요한 곳에만 쓰도록 하자


 

 

 

nullish coalescing 연산자

??

이놈 삼항연산자랑 어째 비슷하다.
사용법은 역시 간단

 

 

console.log(undefined ?? '이거')  // 이거

 

 

보통 리액트나 뷰에서 활용하면 좋다. 대충 이런 방식으로.

var user;
console.log(user ?? '로딩중')

 

 

 

 

 

var obj = {
    data: {
        name: {
            id: 123,
            date:456,
        },
    },
}

console.log(obj.data?.name?.id??'뭐요'); // 뭐요

 

 

 

|| 와 ?? 의 차이

||

  • 0, false, undefined같은 boolean으로 false인 값을 전부 검사한다.

??

  • undefined, null같은 nullish만 검사하는 연산자
const a = false || 'how'
console.log(a)   // 'how'
const b = false ?? '사람이름이'
console.log(b)  // false
const c = undefined ?? null ?? '엄'
console.log(c)  // '엄'

 

 

 

반응형
저작자표시 (새창열림)

'Javascript > 문법' 카테고리의 다른 글

javascript hoisting  (0) 2022.10.02
javascript reference  (0) 2022.10.02
객체 비구조화 할당 (객체 구조 분해)  (0) 2020.10.08
자바스크립트 사용시 주의해야 할 기본적인 문법  (0) 2020.10.08
innerHTML대신 textContent 사용을 지향하기  (0) 2020.05.17
  1.  
  2. user.age와 user?.age의 차이
  3.  
  4. when to use?
  5. ||
  6. ??
'Javascript/문법' 카테고리의 다른 글
  • javascript hoisting
  • javascript reference
  • 객체 비구조화 할당 (객체 구조 분해)
  • 자바스크립트 사용시 주의해야 할 기본적인 문법
sovelop
sovelop
무슨 생각을 해.. 그냥 하는거지
so's devlog무슨 생각을 해.. 그냥 하는거지
sovelop
so's devlog
sovelop
전체
오늘
어제
  • 분류 전체보기 (141)
    • 🔥TIL (15)
    • 생각 (5)
      • Daily Routine (0)
    • WEB (2)
    • VueJS (1)
    • 파이썬 문법 (17)
      • Django (0)
    • 알고리즘 (23)
      • 백준 알고리즘 (13)
      • 프로그래머스 (0)
      • 기타 사이트 알고리즘 (6)
    • 컴퓨터공학입문 (13)
    • Data_Analysis (9)
    • Javascript (8)
      • 문법 (8)
      • node.js (0)
    • Java (9)
      • 문법 (3)
      • Android Studio (0)
      • Algorithm (2)
    • Server (6)
      • sql (2)
      • linux (2)
    • Back-up (22)
      • Git + Github (5)
      • English (0)
      • etc (17)
    • 테크 관련 세미나 (4)
    • English (0)
    • Error (4)
    • 코테후기 (0)

블로그 메뉴

  • About me

공지사항

인기 글

태그

  • 한빛미디어
  • 코알라univ
  • 무접점저소음
  • 혼공단
  • 코딩좀알려주라
  • # 백준 #파이썬 #python
  • 혼공자
  • va87m

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
sovelop
자바스크립트 신문법 정리(optional chaining, nullish coalescing 연산자)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.