본문 바로가기

나의 FE피봇이야기/Javascript

[ JS ] !! // ??문법

삼항 함수같은거 좀 보는데, !! ?? 이런 문법은 거의 못봐서. 검색해 봤어요.

 

?? - Nullish Coalescing Operator (널 병합 연산자)

??는 왼쪽의 값이 null이나 undefined일 경우에만 오른쪽 값을 반환합니다.

 

let name = null;
let defaultName = "Anonymous";

console.log(name ?? defaultName); // "Anonymous"

 

차이점:
|| 연산자와 유사하지만, null이나 undefined인 경우에만 오른쪽 값을 반환합니다.
||는 0, false, ""(빈 문자열)과 같은 falsy 값도 오른쪽 값을 반환할 수 있습니다.

 

!! - Double Negation (이중 부정)

여기서 "hello"는 truthy 값이므로 !!"hello"는 true를 반환하고, 0은 falsy 값이므로 !!0은 false를 반환합니다.

 

let value = "hello";
console.log(!!value); // true

let emptyValue = 0;
console.log(!!emptyValue); // false