웹/JavaScript

[JavaScript] 자동 타입 변환

caramel-bottle 2023. 10. 28.

자동 타입 변환

특정 타입의 값을 기대하는 곳에 다른 타입의 값이 오면 자동으로 타입을 변환

 

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

댓글