자동 타입 변환
특정 타입의 값을 기대하는 곳에 다른 타입의 값이 오면 자동으로 타입을 변환
number + string
const num = 10;
const str = '문자열';
console.log(`typeof(num): ${typeof(num)}`);
console.log(`typeof(str): ${typeof(str)}`);
console.log(`num + str: ${num + str}`);
console.log(`typeof(num + str): ${typeof(num + str)}`);
string * string
const str1 = '3';
const str2 = '5';
console.log(`typeof(num): ${typeof(str1)}`);
console.log(`typeof(str): ${typeof(str2)}`);
console.log(`str1 * str2: ${str1 * str2}`);
console.log(`typeof(str1 * str2): ${typeof(str1 * str2)}`);
진짜 문자열
const str1 = 'hi';
const str2 = 'bye';
console.log(`typeof(num): ${typeof(str1)}`);
console.log(`typeof(str): ${typeof(str2)}`);
console.log(`str1 * str2: ${str1 * str2}`);
console.log(`typeof(str1 * str2): ${typeof(str1 * str2)}`);
연산이 불가능한 문자열끼리 곱 연산을 수행하면 NaN을 출력하는 것을 알 수 있다.
NaN은 Not-a-Number의 약자로 Number가 아님을 나타내는데 NaN의 타입은 number이다.
또한 곱 연산은 number형을 반환하는 것을 알 수 있다.
타입 변환 함수
강제로 타입을 변환할 수 있음
Number(): 문자를 숫자로 변환
String(): 숫자나 불린 등을 문자형으로 변환
Boolean(): 문자나 숫자 등을 불린형으로 변환
Object(): 모든 자료형을 객체형으로 변환
parseInt(): 문자를 정수형으로 변환
parseFloat(): 문자를 실수형으로 변환
강제 타입 변환
const num1 = '10';
const num2 = '5';
console.log(`num1: ${num1}`);
console.log(`typeof(num1): ${typeof(num1)}`);
console.log('-------------------------------------------');
console.log(`Number(num1): ${Number(num1)}`);
console.log(`typeof(Number(num1)): ${typeof(Number(num1))}`);
console.log('-------------------------------------------');
console.log(`String(num1): ${String(num1)}`);
console.log(`typeof(String(num1)): ${typeof(String(num1))}`);
console.log('-------------------------------------------');
console.log(`Boolean(num1): ${Boolean(num1)}`);
console.log(`typeof(Boolean(num1)): ${typeof(Boolean(num1))}`);
console.log('-------------------------------------------');
console.log(`Object(num1): ${Object(num1)}`);
console.log(`typeof(Object(num1)): ${typeof(Object(num1))}`);
console.log('-------------------------------------------');
console.log(`parseInt(num1): ${parseInt(num1)}`);
console.log(`typeof(parseInt(num1)): ${typeof(parseInt(num1))}`);
console.log('-------------------------------------------');
console.log(`parseFloat(num1): ${parseFloat(num1)}`);
console.log(`typeof(parseFloat(num1)): ${typeof(parseFloat(num1))}`);
실수
const num1 = '10.5';
const num2 = '5.6';
console.log(`num1 + num2 = ${num1 + num2}`);
console.log(`num1 + num2 = ${Number(num1) + Number(num2)}`);
console.log(`num1 + num2 = ${parseInt(num1) + parseInt(num2)}`);
'웹 > JavaScript' 카테고리의 다른 글
[JavaScript] 제어문(조건문, 반복문) (1) | 2023.10.29 |
---|---|
[JavaScript] 대화상자 (0) | 2023.10.28 |
[JavaScript] 데이터 타입 (0) | 2023.10.28 |
[JavaScript] 변수 (0) | 2023.10.25 |
[JavaScript] JavaScript (0) | 2023.10.20 |
댓글