표기법 : ?.
객체를 가리키기를 기대는 변수가 null또는 undefined가 아닌지 확인하고 프로퍼티를 안전하게 참조할 때 유용.
null또는 undefined만 false로 인식한다. 즉, 빈문자열을 true로 인식한다.
옵셔널 체이닝 도입 이전에는 논리곱(&&)을 사용한 단축 평가를 통해 변수가 null 또는 undefined인지 확인했음.
첫번째 예로, &&를 쓰는 경우
str = '';
lengthone = str && str.length;
console.log(lengthone)
==> 결과는 빈칸이 나온다.
// 옵셔널 체이닝 연산자
str = '';
length = str?.length;
console.log(length); // 0
==> 0이 나온다.
예전 방식과 현재 방식
let dog = { name: '바둑이', owner: { name: '연미' } };
function printOwner(obj) {
const ownerName = obj && obj.owner && obj.owner.name;
const ownerNamecurrent = obj?.owner?.name;
console.log(ownerName);
}
printOwner(dog);
printOwner();
'Javascript' 카테고리의 다른 글
set에 대하여 (0) | 2022.10.07 |
---|---|
널병합연산자 ?? (0) | 2022.10.07 |
논리 연산자 단축평가 || 와 && (0) | 2022.10.07 |
형변환 (1) | 2022.10.07 |
자바스크립트 기본 (1) | 2022.10.07 |