논리적 사고

신청 인원 0명에 기본값을 넣으면 10명으로 바뀔까?

논리합과 널 병합 연산자를 실제로 실행해 숫자 0·빈 문자열·null을 구분하고, 기본값을 계산하는 시점까지 확인합니다.

입력 0에서 논리합은 기본값 10을 선택하고 널 병합은 0을 유지하며 두 결과의 자료형은 모두 숫자인 비교
입력 0에서 논리합은 기본값 10을 선택하고 널 병합은 0을 유지하며 두 결과의 자료형은 모두 숫자인 비교
그림 크게 열기 ↗SVG 저장

그림에서 무엇을 볼까요?

입력 0에서 논리합은 기본값 10을 선택하고 널 병합은 0을 유지하며 두 결과의 자료형은 모두 숫자인 비교

워크숍 신청 인원이 0명으로 확인된 경우와 아직 집계되지 않은 경우를 같은 기본값으로 처리하면 화면의 의미가 달라집니다. AI가 자바스크립트의 value || 10을 ‘값이 없으면 10’이라고 설명했다면, 여기서 없다는 말이 어떤 입력을 포함하는지 실행으로 확인해야 합니다.

논리합 연산자 ||는 왼쪽 값을 참·거짓으로 변환해 거짓이면 오른쪽 값을 사용합니다. 숫자 0, 빈 문자열, false, NaN, null, undefined가 여기에 들어갑니다. 숫자 0 || 10은 10입니다. 그러나 문자열 "0"은 참으로 변환되므로 그대로 남습니다. 표시가 비슷해도 자료형이 다르면 결과가 달라집니다.

함께 확인할 점

숫자 0에서 두 결과의 값·자료형·기본값 함수 호출 수를 읽습니다. null·빈 문자열·문자열 "0"로 바꾸며 차이가 생기는 조건을 찾습니다. NaN을 선택하고 기본값 결정과 숫자 유효성 검사가 같은 일인지 설명한 뒤 초기화합니다.

생각해 볼 질문

인원·선택 동의·비고란 가운데 하나를 골라 0·false·빈 문자열을 유지할지 대체할지 정하고, 그 이유를 쓰세요.

← 논리적 사고 그림 더 보기