'자바스크립트에서는 데이터 타입이 상황에 따라 변할 수 있다.' 라고 했을 떄
if ("Hi") {
console.log("Hello!!");
} else {
console.log("Bye");
}
if문의 조건 부분에는 보통 ture나 false값이 리턴되는 조건식이 들어갔다
뭐 예를 들면 (Hi === Hello) , (Year > 2024)등..
하지만 위 코드에는 그냥 'Hi'라는 문자열이 들어가 있다.
위 코드를 실행하였을때 결과는 다음과 같다.
'Hello!!'라는 문자열이 출력 되었는데
결국 if문의 조건 부분에 들어간 문자열이 true처럼 평가 되었다는 것이다.
자바스크립트에서는 if, form while문의 조건 부분 처럼 불린 타입의 값이 필요한 맥락에서는
불린이 아닌 다른 타입의 값들도 불린 타입으로 평가되는 특징이 있다.
다시 말해서 불린이 아닌 타입의 값이 불린 타입으로 형 변환 된다는 것.
그렇다면 구체적으로 어떤 값이 true처럼 평가되고 false처럼 평가가 되는 것일까?
자바스크립트에서는 false 뿐만 아니라 null, undefined, NaN, 숫자 0, 빈 문자열이 false처럼 평가되고
나머지 값들은 모두 true처럼 평가된다.
이때 False로 평가되는 값들을 Falsy 값이라고 부르고
반대로 True로 평가되는 값들을 Truthy 값이라고 부른다.
참고로 숫자 0과 빈 문자열이 Flasy이라고 하지만
빈 배열[] 이나 빈 객체{} 는 Falsy라고 하지 않으며 모두 Truthy 값이다.
이렇게 자바스크립트에서 여러 타입의 값들이 맥락에 따라
불린 형태로 평가될 수 있다는 특징이 있으며
특히 Truthy와 Falsy 개념은
자바스크립트에서 불린 타입으로의 형 변환을 이해하는데에 핵심 개념이라고 할 수 있다.
그렇기 때문에 Truthy와 Falsy 값을 명확히 알고 싶다면
Boolean 함수를 사용해서 알고자하는 값을 불린 타입으로 직접 변환해 볼 수 있다.
// Falsy 값
console.log(Boolean(false));
console.log(Boolean(null));
console.log(Boolean(undefined));
console.log(Boolean(NaN));
console.log(Boolean(0));
console.log(Boolean(''));
// Truthy 값
console.log(Boolean(true));
console.log(Boolean('SeopE'));
console.log(Boolean(123));
console.log(Boolean(-123));
console.log(Boolean({}));
이렇게 불린 함수를 사용했을 때 Falsy 값들은 모두 false를,
Falsy 값을 제외한 값들은 모두 ture를 리턴하게 된다는 점을 확인할 수 있다.
'JS' 카테고리의 다른 글
(5) Modern JavaScript - null 병합 연산자 (0) | 2024.11.21 |
---|---|
(4) Modern JavaScript - AND , OR 연산 방식과 우선 순위 (0) | 2024.11.21 |
(2) Modern JavaScript - Typeof 연산자 (복습) (0) | 2024.11.20 |
(1) Modern JavaScript - 데이터 타입의 특징과 종류 (0) | 2024.11.19 |
(22) Interactive JavaScript (Event) - 스크롤 이벤트 (0) | 2024.11.18 |