형변환

Mia Lee·2021년 11월 26일
0

Java Script

목록 보기
5/25
<!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>








0개의 댓글