티스토리 뷰

String에서 Boolean으로 변환하는 방법을 알아보도록 하자. 별생각 없이 형 변환을 하다가는 오류를 범할 수 있다.

API response로 Boolean 타입의 객체가 오면 문제가 되지 않지만 String 타입의 'true', 'false'로 response를 받는 경우도 종종 있다. 간단하게 if 문 구성을 String 비교로 해도 되지만 Boolean의 의미가 퇴색되어 버린다고 할까 뭔가 부족한 느낌이다.

다른 방법으로 Boolean 함수를 생각할 수 있지만 이 또한 문제가 있다. 아래 코드로 간단하게 확인해 보자.


Boolean(null);        //false
Boolean(undefined);   //false
Boolean(NaN);         //false
Boolean('');          //false
Boolean(0);           //false
Boolean(1);           //true
Boolean('false');     //true
Boolean('true');      //true
Boolean('reference'); //true

문자열을 인자로 하는 예시를 보면 빈 문자열을 제외한 모든 문자열이 true로 반환된다. 이와 같은 결과를 검증하지 않고 사용하다면 오류로 빠지기 쉽다. Boolean이 아닌 값을 변환할 때 Boolean 함수를 사용해서는 안된다.

정상적인 결과를 얻기 위해서는 아래와 같이 하면 된다.


JSON.parse('true');   //true
JSON.parse('false');  //false

$.parseJSON('true');  //true
$.parseJSON('false'); //false

JSON 객체 또는 jQuery를 통해 원하는 결과를 얻을 수 있다. 단 유효하지 않은 문자열이 전달되면 예외가 발생된다. 예를 들어 대문자 'TRUE', 'FALSE'에 해당된다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함