더북(TheBook)

Note 자바스크립트의 ‘진리성’

이미 눈치챘겠지만 자바스크립트에서 한 표현의 진릿값을 찾는 것이 꽤 까다롭습니다. 다음은 콘솔에서 직접 시도할 수 있는 간단한 예입니다.

엄격하지 않은(non-strict) 항등 연산자 = =를 사용할 때 정수 값 1과 문자열 값 "1"을 비교하면 true를 반환합니다. 이는 자바스크립트가 비교 연산을 하기 전에 타입 변환을 해서 ‘도움’이 되고자 하기 때문입니다. 엄격한(strict) 항등 연산자 = = =를 사용하면 예상한 것과 같은 false 결과를 반환합니다.

canAddToCart 함수에서는 초과 연산자인 >을 사용해서 두 정수 값을 비교합니다. 이 두 값의 출처가 의심스럽거나 실제로 정수라면, parseInt 메서드를 사용해서 변환하거나 값들이 정수인지 직접 확인하는 방법으로 강제할 수 있습니다.

자바스크립트의 타입 변환과 항등 연산자에 관한 많은 글이 있지만, 가장 참고할 만한 것은 https://dorey.github.io/JavaScript-Equality-Table/에 있는 다이어그램입니다. = =와  = = = 탭을 꼭 비교해 보세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.