devlog_zz

?? 와 || 의 차이점 - falsy, truthy 개념 본문

Front End/Javascript

?? 와 || 의 차이점 - falsy, truthy 개념

YJ_SW 2022. 11. 1. 16:27
728x90

||

피연산자 둘 중 하나 이상이 참이면 참을 반환 ( or의 개념 )

피연산자들이 boolean값이 아니라면 첫 번째 truthy 값 반환

?? 

value1 ?? value2

value1이 존재하는 변수(null이 아니고 undefined가 아닌)라면 그 값을 반환, 그렇지 않으면 value2

null 이나 undefined가 아닌 첫 번째 피연산자 찾기

(value1 !== null && value1 !== undefined) ? value1 : value2;

두 연산자의 차이점

|| 는 첫 번째 truthy 값을 반환
?? 는 첫 번째 정의된 값을 반환

javascript에서 truthy, falsy 의 개념

falsy 

undefined
null
0
''
NaN
false

truthy 위의 5가지 제외한 나머지


예시

let testmsg = 0
console.log(testmsg ?? 'no')
console.log(testmsg || 'no')

 

결과

0
'no'

 

?? 는 testmsg가 정의된 값이므로 testmsg 반환

|| 는 testmsg가 falsy한 값이므로 첫번째 truthy한 값인 'no'를 반환

 

 

참고문서

https://bbaktaeho-95.tistory.com/48

728x90
Comments