JavaScript
숫자·문자열·불리언 구분하기
숫자 계산, 글자 표현, 참과 거짓은 서로 다른 값의 종류입니다.
이럴 때 필요해요
입력값 12와 문자열 12가 계산에서 다르게 동작하는 이유를 살펴봅니다.
어떻게 동작하나요?
12는 숫자이고 따옴표로 감싼 "12"는 문자열입니다. true와 false는 조건의 결과를 표현하는 불리언입니다. 처음에는 이 세 가지 값부터 익혀도 됩니다.
+는 숫자끼리 만나면 덧셈을 하지만 문자열과 만나면 글자를 이어 붙일 수 있습니다. 입력창에서 읽은 값은 보통 문자열이므로 숫자 계산을 하기 전에 변환이 필요한 경우가 있습니다.
Number("12")는 문자열을 숫자로 바꾸는 표현입니다. 변환이 언제나 유효한 숫자를 만드는 것은 아닙니다. 이번에는 값의 종류를 구분하고, 잘못된 입력을 검증하는 방법은 값과 타입 원리 노트에서 이어갑니다.
코드 예제
동작을 설명하는 읽기 전용 예제입니다.
console.log(12 + 1); // 13
console.log("12" + 1); // "121"
console.log(Number("12") + 1); // 13
console.log(12 === 12); // true같아 보이는 12도 숫자인지 문자열인지에 따라 +의 결과가 달라집니다.
자주 헷갈리는 포인트
- 따옴표로 감싼 숫자를 숫자 타입과 동일하게 보지 않습니다.
- Number 변환만으로 입력 검증이 끝났다고 판단하지 않습니다.
내 말로 설명해 보기
"12" + 1과 Number("12") + 1은 각각 무엇일까요?
생각할 단서 예제의 값을 하나 바꿔 보고, 바뀌는 부분과 그대로인 부분을 구분해 보세요.
예시 답변 확인
설명에 들어갈 핵심
- 숫자 계산, 글자 표현, 참과 거짓은 서로 다른 값의 종류입니다.
- 같아 보이는 12도 숫자인지 문자열인지에 따라 +의 결과가 달라집니다.
예시 답변
앞의 결과는 문자열 "121"이고 뒤의 결과는 숫자 13입니다. 앞에서는 문자열 연결, 뒤에서는 숫자 덧셈이 일어납니다.
문장을 그대로 외우기보다 예제의 값과 실행 흐름을 떠올리며 설명해 보세요.