선택적 연결(객체 및 배열)
null
또는 undefined
) 오류 위험 없이 객체 내부의 속성에 액세스할 수 있습니다.선택적 연결은 존재하거나 존재하지 않을 수 있는 속성에 액세스하는 데 사용됩니다.
Reference: MDN docs
선택적 연결(객체)
구문은 점 표기법을 사용하지만 점 앞에
?
가 있습니다. 다음은 예입니다.const user = {
name: 'Joe',
age: 27,
settings: {
theme: {
mode: 'dark',
text: '#d7e0ff',
background: '#f87070',
font: 'Kumbh Sans, sans-serif'
},
},
friends: ['Brandon', 'Brian', 'Isaac'],
}
console.log(user?.settings?.theme) /* => { mode: 'dark', text:
'#d7e0ff', background: '#f87070', font: 'Kumbh Sans, sans-serif' }
*/
옵셔널 체이닝(어레이)
배열에 대한 선택적 연결의 이점은 결과가 null이거나 정의되지 않은 경우 코드가 중단되지 않는다는 것입니다. 단락되고 정의되지 않은 값을 반환합니다.
const user = {
name: 'Joe',
age: 27,
settings: {
theme: {
mode: 'dark',
text: '#d7e0ff',
background: '#f87070',
font: 'Kumbh Sans, sans-serif'
},
},
friends: ['Brandon', 'Brian', 'Isaac'],
}
/*
// variable to hold the data
let firstArrayValue = '';
// instead of using an if condition
if (user.friends) {
firstArrayValue = user?.friends?.[0];
}
*/
// use optional chaining
const firstArrayValue = user?.friends?.[0]
console.log(firstArrayValue) // => 'Brandon'
중요 사항
// profile is not defined
console.log(profile?.settings?.theme)
// Syntax error (Optional chaining cannot appear in left-hand side)
user?.settings?.theme = 'light'
Reference
이 문제에 관하여(선택적 연결(객체 및 배열)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/joelynn/optional-chaining-objects-arrays-2mjk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)