자바스크립트의 데이터 타입은 크게 두 가지로 나뉜다. 원시 타입과 객체 타입이 그것이다.
1. 원시 타입
1) 숫자 타입 : 정수, 실수의 구분이 없음(C, 자바 언어와의 차이점). 대신 모두 실수로 처리함.
*NaN 산술 연산 불가(not-a-number)
2) 문자열 타입('', "", `` 기호로 감쌈)
3) 불리언(boolean) 타입 : 참과 거짓을 나타냄
4) undefined 타입 : var 키워드에 자동으로 할당됨
5) null 타입 : 값이 없음을 의도적으로 명시할 때 사용(대소문자 구별 필요)
6) 심벌(symbol) 타입 : ES6에서 새로 추가된 타입. 변경 불가능하다는 특징을 가짐
2. 객체 타입
원시 타입의 6가지 항목 이외의 값은 모두 객체 타입이다.
3. 정적 타입과 동적 타입 언어
자바를 학습할 때에, 자바의 가장 뛰어난 장점으로 규모가 큰 프로그램을 개발할 때에 무엇보다 신뢰성, 안전성이 뛰어나기 때문이라고 배웠다. 그래서 자바가 많이 이용되고 있다고도 하였고 말이다. 그렇다면 그 신뢰성과 안전성이라 함은 무엇인가? 자바스크립트와 비교했을 때 거기서 그 이유를 찾을 수 있었다.
C나 자바 같은 언어는 '정적 타입static/string type' 언어로 분류한다. 이들 언어는 변수를 선언할 때에 변수에 할당한 값의 데이터 타입을 미리 선언하는데, 이에 따라 선언한 데이터 타입에 맞는 값만 변수에 할당할 수 있어 변경이 어렵다. 따라서 정적인 특성을 갖고 있다고 표현할 수 있는 것이다. 이에 반해 자바스크립트는 변수를 선언할 때에 데이터 타입을 미리 선언하지 않으며, 오직 var, const, let의 키워드만 사용한다. 따라서 정적 타입의 언어와는 달리 언제든지 변수에 자유롭게 어떠한 데이터 타입의 값이라도 할당할 수가 있다. 그러므로 이를 언제든지 변화할 수 있는 '동적 타입dynamic/weak type' 언어라 칭하는 것이다.
다만 여기에는 단점이 있다. 앞서 자바가 신뢰성과 안전성이 높은 언어로 여겨지는 이유가 변수의 데이터 타입이 고정되어있어 변경이 어려운 데에 있었던 것처럼, 자바스크립트는 반대로 언제든지 변화할 수 있어 신뢰성과 안전성이 떨어진다는 점이다. 유연성은 높지만 신뢰성이 떨어지는 것이다. 따라서 자바스크립트로 프로그래밍 시에는 변수를 사용할 때에 다음의 주의사항을 따르는 것이 좋다.
1) 변수는 꼭 필요할 때에만, 제한적으로 사용한다. 변수가 많아지면 그 많은 변수의 유연성을 모두 컨트롤하기 어려워지기 때문이다.
2) 변수의 유효 범위(스코프)는 최대한 좁게 만든다. 유효 범위가 넓으면 넓을수록 역시 오류 발생의 확률이 높아진다.
3) 비슷한 맥락에서 전역 변수도 최대한 사용하지 않도록 한다.
참고 : 도서 <모던 자바스크립트 Deep Dive>
'TIL' 카테고리의 다른 글
<CSS> 미디어 쿼리 (0) | 2021.12.16 |
---|---|
<자바스크립트 Javascript> 연산자 (0) | 2021.12.15 |
<자바스크립트 Javascript> 자주 사용되는 용어 알기 (0) | 2021.12.13 |
<CSS> 페이지 전환 효과 (0) | 2021.12.12 |
<자바스크립트 JavaScript> 변수 (0) | 2021.12.11 |