prompt()는 사용자로부터 입력값을 받을 때 사용하는 함수인데, 입력받은 값은 기본적으로 문자열(String)로 저장된다. 숫자처럼 사용하면 자동으로 숫자형(Number)으로 변환되기도 하지만, 이렇게 자동 변환에 의존하면 예상치 못한 결과가 나올 수 있다. 그래서 명시적으로 데이터 유형을 변환하는 게 안전하다.
1. prompt()의 기본 동작
prompt()로 입력받은 값은 항상 문자열로 저장된다. 예를 들어, 숫자를 입력하더라도 그 값은 문자열로 처리된다.
let input = prompt("숫자를 입력하세요:"); console.log(typeof input); // 결과: "string"
2. 문자열을 숫자처럼 사용할 때의 문제점
문자열이 산술 연산에 사용되면 JavaScript는 자동으로 숫자형으로 변환하려 한다. 하지만 이 과정에서 의도와 다르게 동작할 수 있다.
let input = prompt("숫자를 입력하세요:"); let result = input + 10; // 문자열로 처리됨 console.log(result); // 예: "5010" (입력이 "50"일 때)

위 코드에서는 input이 문자열이기 때문에 + 연산자가 숫자 덧셈이 아닌 문자열 연결로 동작한다. 이런 문제를 방지하려면 숫자형으로 변환해야 한다.
3. parseInt()로 문자열을 숫자로 변환
parseInt()는 문자열을 정수(Integer)로 변환해 준다. prompt()로 입력받은 값을 숫자로 변환하려면 이 함수를 사용하면 된다.
let input = prompt("숫자를 입력하세요:"); let number = parseInt(input); // 문자열을 정수로 변환 console.log(typeof number); // 결과: "number" let result = number + 10; // 숫자 연산 console.log(result); // 예: 60 (입력이 "50"일 때)

4. 숫자가 아닌 입력값 처리
parseInt()는 숫자가 아닌 값을 변환하려 하면 NaN(Not a Number)을 반환한다. 따라서 입력값이 유효한 숫자인지 확인하는 로직을 추가하는 게 필요하다.
let input = prompt("숫자를 입력하세요:"); let number = parseInt(input); if (isNaN(number)) { console.log("유효한 숫자가 아닙니다."); } else { console.log(`입력한 숫자는 ${number}입니다.`); }
요약
- prompt()로 받은 값은 기본적으로 문자열
- 문자열을 숫자로 변환하려면 parseInt()나 parseFloat()를 사용한다. //parseFloat()는 실수 포함
결과값 유형 정수 (Integer) 실수 (Float) 소수점 처리 소수점 이하는 무시 소수점 이하를 포함 숫자 부분 추출 숫자 부분까지만 추출 숫자 부분까지만 추출 예시 parseInt("123.45") → 123 parseFloat("123.45") → 123.45 - 자동 변환에 의존하지 말고 명시적으로 변환하는 게 안전하다.
- 유효성 검사를 통해 입력값이 숫자인지 확인하는 로직을 추가하면 더 안정적이다.
'개발 > 웹(Web)' 카테고리의 다른 글
| [JavaScript] 반복문 - while문, do~while문 : 팩토리얼 계산기 (1) | 2024.12.25 |
|---|---|
| [JavaScript] 반복문 - 중첩 for 문 : 구구단 (0) | 2024.12.25 |
| [JavaScript] 반복문 - 기초 (0) | 2024.12.25 |
| [JavaScript] 조건문 - 활용 : 자리 배치도 (0) | 2024.12.25 |
| [JavaScript] 조건문 - 기초 (1) | 2024.12.23 |