개발/Typescript

[TIL - Typescript] Truly, Falsy

2024. 5. 9. 18:43

1. 문제 상황

일일 통계자료를 입력하는 화면을 만들고 있었다. 일일 통계자료에 Input이 몇 개 있었는데, 기본 값을 0으로 설정했더니 저장 버튼을 눌러도 Input Value가 없다는 결과가 떴다.(물론 내가 Empty를 방지해서 그렇다.) 그래서 원인을 분석해봤다.

 

2. 원인

Truly, Falsy에 대해 어렴풋이 알고 있었기 때문이었다. Javascript의 큰 특징 중에는 Type Inference(타입 추론)가 있다. Runtime 시점에 필요한 타입을 정한다. 그렇기 때문에 어떤 타입이던 올 수 있다. 그렇다면? 특정 변수가 선언이 되어 있는지, 특정 타입의 유효한 값인지 확인하려면 정말 많은 조건처리를 해줘야 할 것이다. isNaN이나, undefined, null 등 비유효한 값이 들어올 환경이 많은 것이다. 이 불편함을 해소해줄 개념이 바로 Truly, Falsy다!

 

3. Truly, Falsy란?

Truly, False는 runtime의 boolean 컨텍스트에서 true,or false로 추론할 수 있는 값들을 말한다. 예를 들어, 값이 정의되지 않은 undefined는 false로 추론할 수 있고, 숫자가 아닌 NaN의 경우도 그렇다. 이 개념을 통해 조건문을 좀더 간결하게 표현할 수 있다. 아래 코드블럭과 같다.

 

/// Before
var a;
if (a === undefined || a === null || isNan(a) /** || ... || ... */) { 	
	print('false')
else	print('true')


/// After
var a;
if (a) print('false')
else print('true')

 

내 문제상황의 경우, 통계에 쓰이는 각 input의 default value가 0이었고, 0은 Falsy한 값이기 때문에 input에 기본 값이 있어도 적용이 되지 않는다는 것을 알 수 있었다. 하나하나 공부해서 제대로 알자!

 

참고자료: MDN web docs(https://developer.mozilla.org/en-US/docs/Glossary/Falsy)

'개발 > Typescript' 카테고리의 다른 글

undefined vs null 차이  (2) 2025.01.22
[Typescript] JEST란? (단위 테스트 라이브러리)  (0) 2023.03.15
[TypeScript] 컴파일 방식에 대한 정리.  (0) 2023.03.08
'개발/Typescript' 카테고리의 다른 글
  • undefined vs null 차이
  • [Typescript] JEST란? (단위 테스트 라이브러리)
  • [TypeScript] 컴파일 방식에 대한 정리.
inseoking
inseoking
Github 주소: https://github.com/ko-inseoklee
inseoking
내 두뇌의 외장하드.
inseoking
전체
오늘
어제
  • 분류 전체보기 (25)
    • 개발 (17)
      • Typescript (4)
      • React (4)
      • Java (0)
      • Kotlin (0)
      • Spring Boot (3)
      • Android (0)
      • Flutter (2)
      • Python (1)
      • 문제풀이 (2)
    • Computer Science (7)
      • 알고리즘 (2)
      • 데이터베이스 (5)
    • 끄적끄적 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 동적계획법
  • JavaScript
  • knapsack
  • NPM
  • falsy
  • Spring Boot
  • hooks
  • 무인도 여행
  • typescirpt
  • jest
  • UPSERT
  • pip3
  • react
  • nginx
  • Batch Processing
  • 프로그래머스
  • Flutter
  • Environment
  • Build Identifier
  • MariaDB
  • react testing library
  • Signing&Capabilities
  • docker
  • pm2
  • 동시성제어
  • Unit Test
  • TypeScript
  • WebSecurityConfigurerAdapter
  • VAC
  • useCallback

최근 댓글

최근 글

hELLO · Designed By 정상우.
inseoking
[TIL - Typescript] Truly, Falsy
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.