Falsy.. 우리 말로는 거짓 같은 값으로 불리는 놈입니다. boolean 문맥상으로 false로 평가받는 값이라는 의미입니다.
이와 반대로 Truthy 가 있습니다.
Truthy |
'0', 'false', [], {}, funtion(){} |
Falsy |
undefined, null, 0, -0, NaN, false, '', "" |
이 정도가 있습니다.
코딩을 하다 보니 Truthy는 생각보다 쓸 일이 그다지 많지 않지만 falsy 같은 경우의 가독성이 올라가서 주로 쓰게 됩니다.
하나의 예시를 보겠습니다.
var inputData = {}
inputData.num = 5
if(inputData){
if(inputData.num){
let ratio = inputData.num + '%'; // ratio = 5%
}
}
inputData가 있을때 그 안에 있는 num객체를 확인하고 ratio란 값을 사용하는 코드입니다.
처음 inputData가 {}, 즉 객체이기 때문에 Truthy로 인식되고 ratio가 계산되는 것입니다.
하지만 이 falsy의 경우 문제가 생길 때가 있습니다.
var inputData = {}
inputData.num = 0
if(inputData){
if(inputData.num){
let ratio = inputData.num + '%'; // ratio = undefined
}
}
inputData.num = 0 일 경우에 다음과 같은 오류가 생깁니다. ratio를 구하는 계산식이기 때문에 넘어오는 inputData.num는 0~100 사이의 number가 넘어온다는 것을 가정합니다.
하지만 0인 경우에 ratio는 계산되지 않습니다. 0은 falsy이기 때문에 ratio 계산식을 수행하지 못합니다.
따라서 다음과 같은 추가적인 작업이 필요합니다.
var inputData = {}
inputData.num = 0
if(inputData){
if(typeof(inputData.num) == 'number'){
let ratio = inputData.num + '%'; // ratio = 0%
}
}
예시를 보시면 아시겠지만 falsy는 편하지만 때론 오류를 발견하기 힘든 결과를 내보내기도 합니다.
따라서 falsy를 쓰시되 조금더 생각하고 쓰면 아주 좋은 놈입니다.
'개발 > 자바스크립트' 카테고리의 다른 글
[자바스크립트] 최적화 #2 : 반복문 최적화(Duff's Device) (0) | 2020.07.29 |
---|---|
[자바스크립트] 최적화 #1 : for 문을 최적화해보자 (0) | 2020.07.27 |
[자바스크립트] 마침표 표기법, 대괄호 표기법에 대한 비교 (0) | 2020.07.27 |
[자바스크립트] =, == , === 의 차이에 대해서 (0) | 2020.07.23 |
[자바스크립트] delete 연산에 대하여 (0) | 2020.07.13 |
댓글