Sky Archive

JavaScript

[JavaScript] String을 Number 타입으로 형변환 (자동, 명시적)

KingPork 2021. 7. 1. 18:29

 

* Javascript는 명시적 타입 정의가 없다.

 

  Java처럼 String, int 등의 타입을 정의하지 않고, var 타입으로 정의하면 JS가 알아서 

  적절한 타입으로 정의된다.

  명시적인 타입이 없어서 헷갈리는 경우가 많고 예상치도 못한 결과가 나와서 당황할 수 있다.

 

1. 자동 형변환

  - 자동 형변환은 프로그램 실행 중 자동으로 형변환이 되는 걸 의미한다.

    작은 크기의 데이터 타입을 큰 크기의 데이터 타입으로 변환하는 행위를 말한다.

    ( 작은놈이 큰 놈으로 변환 )

// 간단한 예시
var kingPork = 10;		// number
kingPork += "문자";
console.log(kingPork);		// "10문자" = string


kingPork = "2";
kingPork *= 1;
console.log(kingPork);		// 2 = number

 

2. 명시적 타입 변환

   - 자동적으로 형변환 되지 않는 경우를 명시적으로 선언해주는 것을 의미.

parseInt("789.123");		// 123
parseInt("29kingPork");		// 29
parseInt("k29");		// NaN
parseInt("029");		// 29
parseInt("0x29");		// 41
parseInt("11101", 2);		// 29
parseInt("09", 10);		// 9
parseInt("10", 9);		// 9

parseFloat("789.123");			// 789.123
parseFloat("29.5kingPork");		// 29.5
parseFloat("k29");			// NaN
parseFloat("05");			// 5
parseFloat("0x29");			// 0

Javascript에서 8진수는 "0"로 시작하고, 16진수는 "0x"로 시작으로 정의