<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
/*
함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동 형변환
만약, 상황에 따라 개발자가 의도한 타입으로 변환하는 것을 강제 형변환(=명시적 형변환)이라고 함
=> 자바스크립트에서 명시적(강제) 형변환을 수행하는 방법
타입이름(데이터)
=> 주의! 대표적인 타입 이름(string, number, boolean 등)의 첫글자를 대문자로 지정
*/
// 1. 문자(string) 타입으로 변환
// => 참고. alert() 함수 파라미터는 string 타입이며 다른 타입 전달 시 자동으로 문자로 변환됨
// => 변환 방법 : String(데이터)
var value = 1; // 정수 데이터 저장했으므로 변수 value 는 number 타입으로 지정됨
document.write("변환 전 타입 : " + typeof(value) + "<br>"); // number 타입
// => 참고! typeof(데이터) 또는 typeof 데이터 형식 모두 사용 가능
// number 타입인 value 변수의 타입을 문자 타입(string) 으로 변환할 경우
value = String(value); // 주의! 반드시 String 타입(대문자 S)으로 지정 필수!
document.write("변환 후 타입 : " + typeof(value) + "<br>"); // number 타입
document.write("<hr>");
var value2 = true; // boolean 타입 데이터 저장
document.write("변환 전 타입 : " + typeof(value2) + "<br>"); // boolean 타입
// boolean 타입 변수 value2 를 string 타입으로 변환
value2 = String(value2);
document.write("변환 후 타입 : " + typeof(value) + "<br>"); // number 타입
document.write("<hr>");
// =========================================================================
// 2. 숫자(number) 타입으로 변환
// - 수학과 관련된 함수 및 연산 과정에서 자동으로 숫자 타입으로 변환 일어남
// ex) 문자형숫자 / 문자형숫자 = 숫자 데이터(number 타입)로 변환 후 연산
// - 변환 방법 : Number(데이터)
// - 주로 prompt() 함수 등을 사용하여 데이터 입력 시 문자로 취급되므로 숫자로 변환 시 사용
document.write("10" / "5"); // string / string => number / number 로 변환 후 연산 수행
document.write("<br>");
var strNum = prompt("정수를 입력하세요.");
document.write("변환 전 타입 : " + typeof(strNum) + "<br>"); // string 타입
// strNum 에 저장된 데이터를 number 타입으로 변환하여 변수 num 에 저장
var num = Number(strNum);
document.write("변환 후 타입 : " + typeof(num) + "<br>"); // number 타입
// switch-case 문에서 case 문 사용 시 문자 데이터일 경우 정수로 자동 변환되지 않으므로
// 강제 형변환을 통해 number 타입으로 변환해야만 정수 비교가 가능
switch(Number(strNum)) { // switch(num) 와 동일함
case 1 : document.write("1 입니다." + "<br>"); break;
case 2 : document.write("2 입니다." + "<br>");
}
strNum = "1234a";
document.write(typeof(strNum) + "<br>");
num = Number(strNum);
document.write("변환 후 타입 : " + typeof(num) + "<br>");
document.write("변환 후 데이터 : " + num + "<br>");
</script>
</head>
<body>
</body>
</html>