Dev./javascript

[JS] 값이 null 또는 undefined인지 확인하기

인쥭 2022. 10. 4. 14:53
반응형

일반적으로 falsy한 값의 체크는 다음과 같이 확인한다.

function isFalsy(value) {
	return !value ? true : false;
}

console.log(isFalsy(undefined)); // true
console.log(isFalsy(null)); // true
console.log(isFalsy(0)); // true
console.log(isFalsy('')); // true
console.log(isFalsy([])); // false
console.log(isFalsy({})); // false

/*
요런 특징을 이용해서 if(value) 또는 if(!value)로 활용하곤 한다.
*/

그러나 0과 빈 문자열은 검증하지 않고, 오로지 null 또는 undefined인지만 확인하고자 하는 경우에는 동등(==) 연산자를 활용한다.

function isNullOrUndefined(value) {
    return value == null;
}

console.log(isNullOrUndefined(undefined)); // true
console.log(isNullOrUndefined(null)); // true
console.log(isNullOrUndefined(0)); // false
console.log(isNullOrUndefined('')); // false
console.log(isNullOrUndefined([])); // false
console.log(isNullOrUndefined({})); // false

JS는 정말 괴상한 언어인 것 같다.


참고

 

동등 연산자(==) - JavaScript | MDN

동등 연산자(==)는 두 개의 피연산자가 동일한지 확인하며, Boolean값을 반환합니다. 일치 연산자(===)와는 다르게 다른 타입의 피연산자들끼리의 비교를 시도합니다.

developer.mozilla.org

그렇다고 한다.