대전제 : Javascript의 조건문안에서 null, undefinde, '', 0 은 false로 변환된다.
!!null //false
!!undefined //false
!!'' //false
!!0 //false
위 전제를 응용하면, 아래와 같다.
let test = 0;
!!test // false;
!test // true
// bad
if(test === 0){
// test 가 0일 때 실행
} else {
// test 가 0이 아닐 때 실행
}
// better
if( !test ) {
// test 가 0이면 !test = true
} else {
// test 가 0이 아니면 !test = false
}
배열의 길이는 특성상 양수값만 존재하게 된다.
즉, 0일 때 / 0이 아닐 때
로 판별 가능하다.
0 > 0 // false
1 > 0 // true
// bad
if(arr.length === 0) {
// arr.length 가 0일 때 실행
} else {
// arr.length가 0 이 아니면 실행
}
// better
if( !arr.length ) {
// arr.length가 0 이면 실행
} else {
// arr.length가 0 이 아니면 실행
}
음수값은 조건문 안에서 true가 되므로, 0보다 큰값을 판별하는 모든 로직에는 사용할 수 없다.
기본적으로 0과 같으나, undefined 와 null 은 구분할 수 없으므로, 사용할 때 주의하자...! undfinde 와 null 의 차이점
false
이다.// bad
if( str === '' ) {
// str 이 빈 문자열일때 실행
} else {
}
// better
if( !str ) {
// str 이 빈 문자열일 때 실행
} else {
}
// bad
if (a === true) {
// a 가 true일 때 실행
} else {
;;
}
// better
if( a ) {
// a 가 true일 때 실행
} else {
;;
}
a 가 0, '', null, undefined 일 때, false이므로 적절한 상황에서 사용하자.