- 함수와 연산자에 전달되는 값은 대부분 적절한 데이터타입(자료형)으로 자동 형변환 일어남
ex) prompt() 함수로 입력받은 숫자는 string 타입이며 number 타입과 연산 시
number 타입으로 자동 형변환이 일어남(타입을 일치시킨 후 연산을 수행)
- 상황에 따라 개발자가 의도한 타입으로 변환하는 것을 강제 형변환(= 명시적 형변환)이라고 함
=> 자바스크립트에서 명시적 형변환을 수행하는 방법 : 타입(데이터)
=> 주의! 자바에서 명시적 형변환과 소괄호 위치가 다름! => (타입)데이터
=> 주의! 대표적인 타입 이름(string, number, boolean 등)의 첫글자를 대문자로 지정 ex. Number, String, Boolean
ex) 변수 num 의 값을 string 타입으로 변환 시 : String(num), Number(str)
=> 단, 어떤 데이터를 문자열로 변환 시 형변환 연산자 대신 널스트링("")과 결합 연산해도 동일함
ex) 정수 10 + "" = 문자열 "10" 으로 변환됨
1. 문자열(string) 타입으로 변환 : 방법 : String(데이터)
2. 숫자(number) 타입으로 변환 : Number(데이터)
Q. prompt 사용하여 두개의 숫자를 받아서 총합(sum)을 출력하시오.
let num1 = prompt("첫번째 숫자 입력하시오");
let num2 = prompt("두번째 숫자 입력하시오");
let sum = Number(num1) + Number(num2);
document.write("Sum : " + sum);
// =>주의 prompt 함수를 통해 입력받은 데이터는 무조건 string으로 처리됨.
// prompt의 데이터를 Number 타입으로 형변환 후 연산함.
- 숫자와 문자가 결합한 변수를 숫자로 형변환시 NaN 반환됨, 하지만 parseInt 를 사용하면 정수로 변환가능함.
let num3 = "1234a";
num3 = Number(num3);
document.write(num3 + ". 변환 후 타입 : " + typeof(num3) + "<br>");
// 결과 : NaN. 변환 후 타입 : number. NaN => Not a Number (숫자가 아님)
// => number 타입으로 변환이 됐더라도 숫자가 아닌 데이터 이므로 NaN 값이 출력됨.
let data2 = "123ABC"; // 정수 뒤의 숫자가 아닌 데이터도 제거하여 정수로 변환 가능(123)
let data2 = "ABC123"; // 정수 앞의 숫자는 제거 불가능하므로 NaN
let data2 = "456.78"; // 실수에서 소수점 부분 제거하여 정수로 변환 가능(123)
data2 = parseInt(data2);
- boolean 타입으로 변환 시에는 변환 대상 데이터가 존재하기만 하면 무조건 true로 취급됨.
: 0 과 -1 빼고는 모두 true 라고 생각하면 됨.
'자바스프링웹공부(2024) > 자바스크립트' 카테고리의 다른 글
2024.07.31. 자바스크립트 - 반복문 (0) | 2024.07.31 |
---|---|
2024.07.30. 자바스크립트 - if, if-else, if-elseif-else (0) | 2024.07.31 |
2024.07.30. 자바스크립트 자료형, 연산자 (0) | 2024.07.30 |
2024.07.30. 자바스크립트 변수 (0) | 2024.07.30 |
2024.07.25. 자바스크립트, HTML 기초. (0) | 2024.07.28 |