자바스크립트에서의 null, undefined, '', 0

Daniel·2023년 4월 25일
0

대전제 : Javascript의 조건문안에서 null, undefinde, '', 0 은 false로 변환된다.

!!null //false

!!undefined //false

!!'' //false

!!0 //false

위 전제를 응용하면, 아래와 같다.

case 1: test === 0 은 !test 와 같다.

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
}

case 2: arr.length === 0 판별

배열의 길이는 특성상 양수값만 존재하게 된다.
즉, 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보다 큰값을 판별하는 모든 로직에는 사용할 수 없다.

case 3: undefined, null, '' 판별

기본적으로 0과 같으나, undefined 와 null 은 구분할 수 없으므로, 사용할 때 주의하자...! undfinde 와 null 의 차이점

case 4: 문자열이 비어있거나 비어있지 않거나

  • 빈 문자열은 조건문 안에서 false 이다.
// bad
if( str === '' ) {
	// str 이 빈 문자열일때 실행
} else {

}

// better
if( !str ) {
	// str 이 빈 문자열일 때 실행
} else {

}

case 5: true / false 판별

// bad
if (a === true) {
	// a 가 true일 때 실행
} else {
	;;
}

// better
if( a ) {
	// a 가 true일 때 실행
} else {
	;;
}

a 가 0, '', null, undefined 일 때, false이므로 적절한 상황에서 사용하자.

출처(참고문헌)

profile
응애 나 애기 개발자

0개의 댓글