본문 바로가기

FrontEnd/Javascript

JS / Truthy, Falsy

반응형

자바스크립트에서 falsy와 truthy 값은 다음과 같다.

Falsy 값

자바스크립트에서 falsy 값은 다음과 같은 6가지가 있다:

  1. false
  2. 0 (숫자 0)
  3. -0 (음수 0)
  4. 0n (BigInt의 0)
  5. "" (빈 문자열)
  6. null
  7. undefined
  8. NaN (Not-a-Number)

이 값들은 조건문에서 false로 평가된다.

Truthy 값

Falsy 값에 해당하지 않는 모든 값은 truthy 값이다. 몇 가지 예시는 다음과 같다:

  1. true
  2. {} (빈 객체)
  3. [] (빈 배열)
  4. "hello" (빈 문자열이 아닌 문자열)
  5. 42 (0이 아닌 숫자)
  6. -42 (음수이지만 0이 아닌 숫자)
  7. 3.14 (부동 소수점 숫자)
  8. new Date() (Date 객체)
  9. Infinity (무한대)
  10. -Infinity (음의 무한대)

이 값들은 조건문에서 true로 평가된다.

True와 False의 차이

True와 False는 불리언 타입의 리터럴 값이다. true는 참을 나타내고, false는 거짓을 나타낸다. 반면에, truthy와 falsy는 자바스크립트의 조건문에서 Boolean 값으로 암시적 변환될 때 true 또는 false로 평가되는 값을 나타낸다.

예를 들어:

if (true) {
  console.log("참이다"); // 이 코드는 실행된다.
}

if (false) {
  console.log("거짓이다"); // 이 코드는 실행되지 않는다.
}

if ("hello") {
  console.log("참이다"); // 이 코드는 실행된다.
}

if (0) {
  console.log("거짓이다"); // 이 코드는 실행되지 않는다.
}

 

위의 코드에서 "hello"는 truthy 값으로 평가되므로 "참이다"가 출력된다. 반면에 0은 falsy 값으로 평가되므로 "거짓이다"가 출력되지 않는다.

따라서, true와 false는 명확한 불리언 값이지만, truthy와 falsy 값은 조건문에서 평가될 때 각각 true 또는 false로 간주되는 값들이다. 이는 자바스크립트의 동적 타입 특성으로 인해 발생하는 개념이다.

 

 

반응형