자바스크립트 변수와 데이터 타입의 관계
자바스크립트에서 변수 자체에는 타입이 없습니다. 실제로 타입을 갖는 것은 변수에 저장된 값(value)입니다. 이것이 자바스크립트가 대표적인 동적 타입(Dynamically Typed) 언어로 불리는 이유입니다.
변수 선언 방식
자바스크립트에서 변수를 선언할 때 타입을 지정하지 않고 다음과 같이 선언합니다.
var rank = 5;
var name = "John";
위 예제에서 rank는 숫자 값을, name은 문자열 값을 담고 있지만, 선언 시점에 어떤 타입인지 명시하지 않았습니다.
변수에 다른 타입의 값 재할당하기
흥미로운 점은 같은 변수에 서로 다른 타입의 값을 자유롭게 할당할 수 있다는 것입니다.
var rank = 5;
rank = 'first';
document.write(rank); // first 출력
처음에는 숫자 5를 담았던 rank 변수가, 이후 문자열 'first'를 담아도 아무런 오류 없이 정상적으로 동작합니다.
타입을 명시하면 안 되는 이유
위 예제에서 확인했듯이, 변수 선언 시점에 타입을 지정하는 것은 자바스크립트에서 아무런 의미가 없습니다. 그 이유는 다음과 같습니다.
- 타입은 값이 결정합니다. 변수의 타입은 선언 시점이 아니라 해당 변수에 할당된 값에 따라 동적으로 결정됩니다.
- 재할당으로 타입이 변경될 수 있습니다. 실행 중에 값이 바뀌면 변수의 타입도 함께 바뀌기 때문에 고정된 타입 지정은 무의미합니다.
참고: 타입 확인 방법
변수에 담긴 값의 타입이 궁금하다면 typeof 연산자를 사용해 확인할 수 있습니다.
var rank = 5;
console.log(typeof rank); // "number"
rank = 'first';
console.log(typeof rank); // "string"
결론적으로, 자바스크립트는 변수가 아닌 값에 타입이 존재하는 언어이며, 개발자는 변수 선언 시 타입을 신경 쓰지 않고 코드를 작성하면 됩니다.