자바스크립트 형변환(Type Casting)

자바스크립트는 동적으로 타입이 결정되는 언어입니다. 이는 변수의 타입을 선언하지 않고 값을 할당하면 자동으로 타입이 결정된다는 의미입니다. 하지만 때로는 우리가 명시적으로 형변환을 해야하는 경우가 있습니다. 자바스크립트에서는 Type Casting 또는 Type Conversion 이라고 부르는 이러한 작업을 수행할 수 있습니다.

1. 암시적 형변환 (Implicit Type Casting)

암시적 형변환은 자바스크립트가 자동으로 타입을 변환해주는 것을 의미합니다. 일반적으로 연산자를 사용할 때 많이 발생하는데, 간단한 예시를 살펴보겠습니다.

var num = 10;
var str = "5";

var sum = num + str;

console.log(sum); // "105"

위의 예제에서 num 변수는 숫자형(Number)이고 str 변수는 문자열(String)입니다. numstr을 더하려고 하면 자바스크립트는 문자열과 숫자를 연결하기 위해 num을 문자열로 변환하고 연산을 수행합니다. 그 결과 “105”라는 문자열이 출력됩니다. 이처럼 자바스크립트는 암시적으로 타입을 변환하여 연산을 수행합니다.

2. 명시적 형변환 (Explicit Type Casting)

명시적 형변환은 개발자가 직접 타입을 변환하는 것을 의미합니다. 자바스크립트에서는 다양한 방법으로 명시적 형변환을 할 수 있습니다.

2.1. 숫자형으로의 형변환

문자열을 숫자형으로 형변환하려면 Number() 함수를 사용합니다. 다음 예제를 살펴보겠습니다.

var str = "5";
var num = Number(str);

console.log(num); // 5
console.log(typeof num); // number

Number() 함수는 문자열을 숫자로 변환하여 반환합니다. 위의 예제에서 str 변수의 값은 “5”인데, Number() 함수를 사용하여 숫자형으로 변환한 후 num 변수에 할당했습니다. 결과적으로 num 변수는 숫자 5를 가지게 되며, typeof 연산자를 이용하여 자료형을 확인하면 number가 출력됩니다.

2.2. 문자열로의 형변환

숫자를 문자열로 형변환하려면 String() 함수를 사용합니다. 다음 예제를 살펴보겠습니다.

var num = 10;
var str = String(num);

console.log(str); // "10"
console.log(typeof str); // string

String() 함수는 숫자를 문자열로 변환하여 반환합니다. 위의 예제에서 num 변수의 값은 10인데, String() 함수를 사용하여 문자열로 변환한 후 str 변수에 할당했습니다. 결과적으로 str 변수는 문자열 “10”을 가지게 되며, typeof 연산자를 이용하여 자료형을 확인하면 string이 출력됩니다.

2.3. 논리형으로의 형변환

논리형으로의 형변환은 Boolean() 함수를 사용하여 수행할 수 있습니다. 다음 예제를 살펴보겠습니다.

var num = 0;
var bool = Boolean(num);

console.log(bool); // false
console.log(typeof bool); // boolean

Boolean() 함수는 매개변수로 전달된 값을 논리형으로 변환하여 반환합니다. 위의 예제에서 num 변수의 값은 0인데, Boolean() 함수를 사용하여 논리형으로 변환한 후 bool 변수에 할당했습니다. 결과적으로 bool 변수는 false를 가지게 되며, typeof 연산자를 이용하여 자료형을 확인하면 boolean이 출력됩니다.

결론

JavaScript에서는 암시적 형변환과 명시적 형변환을 통해 변수의 타입을 변환할 수 있습니다. 암시적 형변환은 자바스크립트 엔진에 의해 자동으로 수행되며, 주로 연산자를 사용할 때 발생합니다. 반면에 명시적 형변환은 개발자가 직접 타입을 변환하는 작업으로, Number(), String(), Boolean() 등의 함수를 사용하여 수행할 수 있습니다. 개발자는 자바스크립트에서 제공하는 형변환 기능을 적절히 활용하여 타입 변환을 쉽게 수행할 수 있습니다.