: ?. 왼쪽이 null, undefined면 점 안찍고 undefined로 남겨줌
중첩된 object자료에서 자료 뽑을 때 reference에러 없이 안전하게 뽑을 수 있음
dept가 1일때는 객체 내부에 접근할때 값이 없으면 undefined로 자동적용.
하지만 그 보다 안에있는 값 (2개이상)인 경우는 에러남
(= undefined.value , null.value는 에러)
const user = {
name: 'kim',
// age: {value :20}
}
console.log(user.age.value); <- 에러때문에 코드실행이 중단되는 상황
console.log(user.age?.value); <- 왼쪽이 비어있으므로 오른쪽 안함
: ?? 왼쪽이 null, undefined면 오른쪽값으로 리턴
: api가 늦게 도착하는 경우같이 데이터가 없어서 null, undefined로 정의될때 오른쪽 값으로 출력.
const name = null;
console.log(name??'로딩중'); <- 왼쪽값이 null이기때문에 오른쪽값 출력
// '로딩중'
중요
안전성 관련 이슈로 인해 자바스트립트 언어에서는 ??는 &&나 ||를 함께 사용 못함.
사용하기 위해서는 괄호를 이용하면 됨.