반응형
삼항연산자
1 ? 'a' : 'b' // 'a'
0 ? 'a' : 'b' // 'b'
undefined ? 'a' : 'b' // 'b'
null ? 'a' : 'b' // 'b'
'' ? 'a' : 'b' // 'b'
[] ? 'a' : 'b' // 'a'
{} ? 'a' : 'b' // Uncaught SyntaxError: Unexpected token '?'
({}).constructor === Object && Object.keys({}).length === 0 ? 'a' : 'b' // 'a'
NaN ? 'a' : 'b'
논리연산자
!!0 // false
!!1 // true
!!'' // false
!!'a' // true
!!undefined // false
!!null // false
!!{} // true => 이게 쫌 햇갈리는 부분
!![] // true
!!NaN // false
단축평가
'a' ?? 'b' // 'a'
'a' || 'b' // 'a'
'a' && 'b' // 'b'
0 || 0 // 0
'' || '' // ''
0 || 'a' // 'a'
'a' || 0 // 'a'
'a' || 0 || 'b' // 'a'
'a' && 0 && 'b' // 0
'a' && 'b' && 0 // 0
0 && 'a' && 'b' // 0
'a' && 'b' || 0 // 'b'
[] || {} // []
[] && {} // {}
{} && [] // Uncaught SyntaxError: Unexpected token '&&'
Nullish
null과 undefined 인 경우만 찾아서 작동한다
let a = null
a ??= 1
a // 1
let a = undefined
a ??= 1
a // 1
let a = 0
a ??= 1
a // 0
반응형
'Language > JavaScript' 카테고리의 다른 글
| [JavaScript] 일급 함수 (0) | 2024.01.18 |
|---|---|
| [JavaScript] Class 문법이란? (0) | 2022.12.15 |
