상세 컨텐츠

본문 제목

[트러블 슈팅] javascript 에서 null과 날짜값 비교시 문제

IT/프로그래밍

by James Lee. 2019. 7. 10. 09:37

본문


결론부터 말하자면 JS에서 날짜 값을 비교할 때에는 null이 들어가는지 체크를 꼼꼼하게 해줘야 한다.

아래와 같이 두 개의 변수에 날짜 값 (new Date() 라든가, moment 라든가..)을 비교하는 구문이 있었는데, dateValuenull이 들어가게 되면 의도치 않은 결과가 초래될 수 있다.

if(dateValue1 < dateValue2){
 // do something ...
}

null 과 날짜 값을 비교해주면 null이 Date객체보다 작은 경우 true를 반환한다.

//true를 반환
null < new Date() // true
null <= new Date() // true

//false를 반환
null > new Date() // false
null >= new Date() // false

Chrome Console에서 실행시킨 결과

null과 객체값의 대소비교를 했을때 false가 떨어진다는 사실을 알고 있었기에 Date 객체의 비교도 그럴 줄 알았는데, 아니었다.

앞으로는 날짜값을 비교할때 조심하는 것을 넘어서, 특히 JS같이 유연한 언어는 보다 방어적으로 작성하도록 노력을 기울여야겠다. :)

방어 코드를 작성하는 스타일은 개인마다 다를 수 있으므로 생략한다.


관련글 더보기

댓글 영역