본문 바로가기
웹(web)/프론트엔드-javascript

falsy 한 값

by 바코94 2020. 6. 28.

falsy한 값이란 if의 조건식으로 평가되었을 때 false로 취급되는 값이다. 쉽게 말하면 if ( ? ) { } 에서 ? 조건이 false로 계산되는 값이다. 

 

예를 들면

if( 'hello') {

  console.log('hello~~');

}

와 같은 상황에서 'hello'는 false로 판단될까? 아니면 true로 판단될까? 자바스크립트에서는 true로 판단된다.

 

falsy한 값은 다음과 같다. 

undefined, null, 0, '', NaN

 

let a ;

let b = null;

let c = 0;

let d = '';

let e = a+ b; 

 

이를 실제로 확인하는 방법은 !!a 처럼 !!를 붙여서 확인하는 방법이다. 또는 a ? true: false로 삼항 연산자를 사용해서 확인할 수도 있다.

 

활용하는 방법은 어떤 것이 있을까?

function get_name(obj){

  return obj && obj.name;

}

위와 같이 사용하면 obj가 undefined일 때는 뒤의 obj.name을 확인하지 않고 리턴한다. 따라서, obj가 truthy한 값일 때만 obj.name을 리턴해준다.

 

또는 falsy한 값이 올 때 사용할 값이 있다면 return variable1 || "falsy value"; 와 같이도 사용할 수 있다.

switch case 대신 객체를 활용할 수도 있다.

function getSound(animal){
  const sounds = { 개: '멍멍!', 고양이: '야용~', 참새: '짹짹' };
  return sounds[animal] || ' ...??? ';
}

 

'웹(web) > 프론트엔드-javascript' 카테고리의 다른 글

rest, spread  (0) 2020.06.28
비구조화 할당(구조분해 할당)  (0) 2020.06.28
클래스  (0) 2020.06.27
생성자 함수와 상속  (0) 2020.06.27
객체, 배열의 내장함수 정리  (0) 2020.06.27