숫자형, 문자열, 객체등 빈값을 체크할때 모호함이 있어서, 모든 케이스를 수용할 수 있는 딱히 없는 듯하여서 케이스 대로 정리 하는 것이 좋다고 판단되었다.
분기문에서 null, undefined, '', 0 은 false로 변환 된다.
검증법은 !! 으로 검증하기 (!이 하나면 반대상태, 두개면 원상태)
위에서 보았듯이 0 은 false와 같다.
행렬 및 객체의 길이 0을 판별하고 싶을때는 arr.length === 0 보다 !arr.length를 사용하자
arr가 행렬일때
if( !arr.length )
arr.length 은 특성상 양수갑만 존재한다. 그러므로 arr.length > 0 보다 arr.length 으로 판단이 가능하다.
위와 같은 정의로
obj === undefined, obj === null, obj === "", obj === 0 보다 !obj로 작성하기.
!obj
빈문자열은 조건문안에서 false 이므로 빈문자열이 들어올 변수를 조건문안에 넣어주기
if ( string )
빈문자열 일때 false 이므로 부정(!) 하여서 false -> true로 만들어 주면 된다.
if ( !string)
if(obj === true) 보다 if(obj) 로 작성하면 된다.
if(obj)
if(obj === false) 보다 if(!obj) 로 작성하면된다.
if(!obj)
0, "", null, undefined 도 false 이므로 단순히 boolean false만 판정하고 싶을때는 if(foo === false) 로 적어주는게 맞다.
정리 하는 것도 좋지만, 유의사항에 해당하는 케이스를 기억하는 것이 치명적인 오류를 방지할 수 있을거란 생각이 들었다.