이중 부정(double negation) : !!

RingKim1·2024년 7월 10일

코드를 작성하면서 필요에 의해 구글링을 하다가 !!를 보게 되었다.

📌!!

  • ! (논리 부정 연산자): 값을 부정하여 true를 false로, false를 true로 변환
  • !!: ! 연산자를 두 번 사용하여 원래 값의 진리성을 명시적으로 boolean 값(true 또는 false)으로 변환

예시

  1. authToken이 "truthy"한 값일 때:
const authToken = "someToken";
console.log(!!authToken); // true
  1. authToken이 "falsy"한 값일 때:
const authToken = "";
console.log(!!authToken); // false

❓"Truthy"와 "Falsy"의 의미

  • Truthy : true로 평가되는 값
    1, "string", {} 등
  • Falsy : false로 평가되는 값
    0, "" (빈 문자열), null, undefined, NaN 등

코드에서 사용

const authToken = cookies.find((cookie) => cookie.startsWith("sb-awglleigixtjjdlmbhrh-auth-token.0"));
setIsAuthenticated(!!authToken);
  1. authToken이 undefined 또는 null인 경우:
    !authToken은 true가 되고, !!authToken은 false가 됨

  2. authToken이 "truthy"한 값인 경우 (예: 문자열):
    !authToken은 false가 되고, !!authToken은 true가 됨

=> authToken이 존재하는지 여부를 명시적으로 true 또는 false로 변환하여 setIsAuthenticated 함수에 전달
따라서 setIsAuthenticated는 authToken의 존재 여부에 따라 true 또는 false로 상태를 설정


참고
stackoverflow

profile
커피는 콜드브루

0개의 댓글