형변환
- prompt로 입력받은 값은 무조건 문자형
- 숫자형이 아니더라도 나누기같은 표현식은 숫자형으로 자동적으로 변환되어 계산됨 = 자동 형변환
- ex) "6" / "2" = 3
- 편하다고 생각할 수 있으나, 이러한 작업은 원인을 찾기 힘든 에러를 발생시킬 수 있으므로 항상 의도를 가지고 원하는 타입으로 변환해주는 것 권장 ( = 명시적 형변환 )
명시적 형변환
String()
- 괄호 안의 타입을 문자형으로 바꿔줌
Number()
- 괄호 안의 타입을 숫자형으로 바꿔줌
- 사용자로부터 입력받은 값이 문자형일 경우 자주 사용
- "1234asd"와 같이 글자가 들어있는 값이 들어가면 NaN반환
- true는 1 false 0 반환
Boolean()
- 숫자0, 빈 문자열, null, undefined, NaN을 제외한 나머지 모두 true
parseInt()
- 괄호 안의 타입을 정수형으로 바꿔줌
- 소수 입력 시 소수점 이하는 버리고 정수 부분만 반환
parseFloat()
- 괄호 안의 타입을 실수형으로 바꿔줌
주의사항
Number(null) // 0
Number(undefined) // NaN
Number(0) // false
Number('0') // true
Number('') // false
Number(' ') // true (공백)
ex) 사용자한테 나이를 입력받는 창에서 사용자가 취소 누르면 null 반환됨
-> Number(null) // 0 반환 -> 그러나 사용자로부터 입력받은 값은 문자형 -> 문자형 "0"은 true
Number()와 parseInt() 차이 예제
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Javascript </title>
<script type="text/javascript">
var n1 = Number(prompt("숫자1 입력")); // 소수점 이하도 표시
var n2 = parseInt(prompt("숫자2 입력")); // 정수형으로 변환
document.write(n1 + '<br>');
document.write(n2);
</script>
</head>
<body>
</body>
</html>
'Frontend > Javascript' 카테고리의 다른 글
[][][] 화살표함수 객체 (0) | 2021.12.08 |
---|---|
비교연산자와 논리연산자 (0) | 2021.12.07 |
데이터 입력과 출력 / alert (0) | 2021.12.07 |
정적 / 동적 타이핑 언어 (0) | 2021.12.07 |
변수와 데이터 타입 / 지역변수와 전역변수 / var let const 차이 / 호이스팅 (Hoisting) (0) | 2021.12.07 |