본문 바로가기
( ´・・)/개발

[JavaScript] 참과 거짓 (Truthy & Falsy)

by shinsangah 2023. 5. 1.

 

// 참과 거짓 (Truthy & Falsy)

if (true) {
  console.log("참!");
}
// 참!

if (false) {
  console.log("거짓!");
}
// 아무것도 출력되지 않음.
조건의 값이 거짓이기 때문에 중괄호 부분의 로직은 실행되지 않음.

if (123) {
  console.log("참!");
}
// 참!

if (0) {
  console.log("참!");
}
// 아무것도 출력되지 않음.
숫자 0은 거짓에 해당되기 때문에 '참!' 이라는 글자가 출력되지 않음.

if ("0") {
  console.log("참!");
}
// 참!
문자 0은 true에 해당하기 때문에.

=> 우리가 사용하는 대부분의 데이터는 '참'에 해당된다.
* 자바스크립트의 데이터 중에서 '거짓(Falsy)'에 해당하는 데이터들만 암기하면
나중에 코딩함에 있어서 전혀 문제가 없을 것이다.


'참(Truthy)' 에 해당하는 값은 우리가 쓸 수 있는 대부분의 값이고,

'거짓(Falsy)'에 해당하는 값은 Boolean 데이터 'False'와 숫자 데이터 '0'을 포함해서 몇 가지가 되지 않는다.

 

1) false
2) 0
3) null
4) undefined
5) NaN
6) '' (빈 문자) (빈 문자 데이터, 아무것도 작성되어져 있지 않은 상태)
7) -0 (음수로 0)
8) 0n (빅인트)

 

* BigInt 는 Number 원시 값이 안정적으로 나타낼 수 있는 최대치인 2^53 - 1보다 큰 정수를 표현할 수 있는 내장 객체입니다.

 

if (null) {
  console.log("참!");
}
// 아무것도 출력되지 않음.

if (undefined) {
  console.log("참!");
}
// 아무것도 출력되지 않음.

if (NaN) {
  console.log("참!");
}
// 아무것도 출력되지 않음.

if ("") {
  console.log("참!");
}
// 아무것도 출력되지 않음.

if (-0) {
  console.log("참!");
}
// 아무것도 출력되지 않음.

if (0n) {
  BigInt; // 빅인트 라는 자바스크립트 데이터
  console.log("참!");
}
// 아무것도 출력되지 않음.


const fruits = ["Apple", "Banana"];

if (fruits) {
  console.log("아이템이 들어있음!");
}
// 아이템이 들어있음!

const fruits = []; // 빈 배열의 상태

if (fruits.length) {
  console.log("아이템이 들어있음!");
}

배열에 아이템이 하나도 안들어있으니까
콘솔창에 '아이템이 들어있음!' 이 출력되면 안될 것이다.
배열 데이터에 들어있는 아이템의 갯수를 표시해주는 fruits.length 를 사용 = 값: 0 (false)

const fruits = ["Apple"];

if (fruits.length) {
  console.log("아이템이 들어있음!");
}
// 아이템이 들어있음!
length 값이 1이 되니까 = true