JavaScript는 대표적인 비타입(untyped) 언어, 흔히 말하는 동적 타입(dynamic typing) 언어입니다. 이것이 의미하는 바는, JavaScript의 변수는 선언 시점에 특정 데이터 타입에 고정되지 않고 어떤 종류의 값이든 담을 수 있다는 것입니다.
C, C++, Java 같은 정적 타입 언어에서는 int, char, float처럼 변수를 선언할 때 반드시 데이터 타입을 명시해야 합니다. 하지만 JavaScript에는 그런 규칙이 없습니다. 숫자든 문자열이든 불리언이든, 하나의 변수가 실행 중에 서로 다른 타입의 값을 자유롭게 가질 수 있습니다.
var 키워드로 변수 선언하기
JavaScript에서 변수를 선언하려면 var 키워드를 사용합니다. 값이 숫자인지 문자열인지에 관계없이 모두 var 하나로 선언할 수 있습니다.
var age = 20; // 숫자(Number) var name = "홍길동"; // 문자열(String) var isActive = true; // 불리언(Boolean)
참고로 최신 JavaScript(ES6 이상)에서는 let과 const 키워드도 널리 사용됩니다. let은 재할당이 가능한 변수를, const는 재할당이 불가능한 상수를 선언할 때 사용하며, 블록 스코프를 지원하기 때문에 현재는 var보다 권장됩니다.
예제 코드
아래 예제를 직접 실행해 보면 JavaScript에서 변수를 선언하고 활용하는 방법을 쉽게 이해할 수 있습니다.
<html>
<body>
<script>
var age = 20;
if (age > 18) {
document.write("<b>운전면허 취득 자격이 있습니다</b>");
}
</script>
</body>
</html>위 코드에서 age 변수는 별도의 타입 선언 없이 숫자 20으로 초기화되었으며, 조건문에서 그대로 비교 연산에 사용됩니다. 이처럼 JavaScript는 타입을 컴파일 시점이 아닌 실행 시점(runtime)에 판단하기 때문에 개발 속도는 빨라지지만, 타입 관련 오류를 사전에 잡기 어렵다는 단점도 있습니다. 이러한 한계를 보완하기 위해 TypeScript처럼 정적 타입 검사를 도입한 언어도 최근 널리 사용되고 있습니다.