일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오종택개발자님
- 출처 : 자바스크립트 딥다이브
- 출처 : 한입크기로 잘라먹는 타입스크립트
- 자바스크립트 딥다이브
- 출처 : https://www.boostcourse.org/
- 함수형 코딩
- 로버트 C마틴
- 리엑트를 다루는 기술
- 쏙쏙 들어오는 함수형코딩
- 유틸리티타입은 공식문서 자주 보자
- 에릭노이먼
- 쏙쏙 들어오는 함수형 코딩
- https://product.kyobobook.co.kr/detail/S000001952246
- 고등애플
- 갈길이 멀구나
- 에릭 노이먼
- 나는 flux좋아...
- 출처는 코딩앙마
- 흥달쌤
- 생코님Redux
- 큰돌의 CS책
- 쏙쏙들어오는함수형코딩
- 쏙속 들어오는 함수형코딩
- 김영한쌤
- 출처 : 코딩애플
- 에릭 노먼드
- 클린코드다시읽기
- 이웅모
- 출처 : 코딩앙마
- 출처는 코딩애플
- Today
- Total
흰둥씨의 개발장
[javascript] or 연산자(||), ??연산자의 차이와 ?. 로 에러 대신 undefined 반환하기 본문
[javascript] or 연산자(||), ??연산자의 차이와 ?. 로 에러 대신 undefined 반환하기
돈워리비해삐 2023. 2. 4. 22:54
or연산자
0, "", false, undefined와 같은 falsy한 값을 전부검사한다.
const or검사 = false || A;
->or검사는 A를 반환한다.
??연산자
undefined 와 null과 같은 nullish한 값만 검사한다. (그렇기 때문에 falsy한 상황은 검사되지 않는다)
const 물음표검사1 = false ?? A;
->물음표검사1은 false를 반환한다.
const 물음표검사2 = A ?? B;
->물음표검사2은 A가 undefied이거나, null이 아닌 이상 B를 반환한다.
안정성 관련 이슈 때문에 ??는 &&나 ||와 함께 사용하지 못한다.
??의 연산자 우선순위는 대다수의 연산자보다 낮고 ?와 = 보다는 높다.
그렇기때문에 복잡한 표현식에서 ?? 를 사용할때는 ()괄호 안에 작성해 주는 것이 매우 권장된다.
괄호 없이 ??를 ||나 &&와 함께 사용하는 것은 금지되어있다.
데이터를 화면에 보여줄 때 불러오는 속도가 느려서 표기 되지 않을만한 상황이 있다면 아래와 같이 활용할 수 있다.
const user;
console.log(user ?? '불러오는 중입니다')
??는 아래와 같이 변수에 기본값을 할당하는 용도로 사용하는 편이다.
let custom;
width: custom ?? 100; //custom이 null이나 undefined인 경우, 100을 할당한다.
?.(optional chaining 연산자)사용하기
위와 비슷하게 객체로 작성된 데이터 값을 할당할 때는 ?.를 사용하여 작성하는 것이 에러없이 undefied를 반환할 수 있다.
(중첩으로 작성된 객체 데이터를 불러올 때 사용 하는 것이 유용하다
왜냐하면 a.b로 불러오는 데이터에 값이 없으면 자바스크립트 자체가 에러를 내지 않고 undefined를 반환하기 때문)
점표기법(A.B.C)으로 데이터를 불러올 때
?.를 사용하여 A.B?.C로 작성하면,
A.B가 null이나 undefined일 경우 undefined를 반환해준다.
let Data = {
흰둥씨 : {
id:1,
date: 230204,
name : '흰둥씨',
},
신짱구 : {
id:2,
date: 230204
name:'짱구',
state : '부리부리',
},
}
console.log(Data.액션가면) //undefied (자바스크립트)
console.log(Data.흰둥씨.state)// 현재 state가 비어있어서 null이기 때문에 에러가 나서 작동을 멈춤
console.log(Data.흰둥씨?.state)// 현재 state가 비어있어서 null이기 때문에 undefined반환
console.log(Data.흰둥씨?.state ?? '현재기분알수없음')// '현재기분알수없음'으로 반환됨
출처 : 코딩애플 유튜브, 모던 JS
'[오늘의 공부] > Javascript' 카테고리의 다른 글
[javascript] sort (0) | 2023.06.30 |
---|---|
[javascript] 배열method 정리 (0) | 2023.03.02 |
[javascript] 비동기로 GET하기 (0) | 2023.01.25 |
[javascript] 기본 (모던 JS정리) (2) | 2023.01.25 |
[오늘의 자바스크립트] 사이즈와 scroll (0) | 2022.12.20 |