자바스크립트 타입

Bonggus·2021년 10월 12일
0

자바스크립트

목록 보기
3/23
post-thumbnail

데이터 타입

자바스크립트는 ES6기준으로 7개의 데이터 다입을 제공한다.

원시타입

  • 숫자: 숫자. 정수와 실수 구분없이 하나의 숫자타입. 구분이 없다는 것은 정수로 표시된다 해도 사실은 실수라는 것을 의미한다.

  • 문자열

  • 불리언: 참/거짓

  • undefined: var키워드로 선언된 변수에 암묵적으로 할당되는 값. 변수를 선언하고 값을 할당하지 않으면 undefined가 들어가 있다. (개발자가 의도하지 않음)

  • null: 값이 없다는 것을 의도적으로 명시.

  • 심벌: 변경 불가능한 원시 타입의 값이다. 다른 값과 중복되지 않는 유일무이한 값. 따라서 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.

객체타입

자바스크립트는 객체기반의 언어이다. 자바스크립트를 이루고 있는 거의 모든 것이 객체라는 것이다.

-객체
-함수
-배열

데이터 타입이 필요한 이유

자바스크립트 엔진은 데이터 타입, 즉 값의 종류에 다라 정해진 크기의 메모리 공간을 확보한다. 자바스크립트는 변수에 할당되는 데이터 타입에 따라 확보해야 할 메모리 공간의 크기가 결정된다.

  • 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
  • 값을 참조할 때 한 번에 읽어 들어야 할 메모리 공간의 크기를 결정하기 위해
  • 메모리에서 읽어 들인 2진수를 어덯게 해석할지 결정하기 위해

동적 타이핑

동적 타입 언어라는 것은 변수 타입이 정해져 있지 않다는 것을 의미한다. 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정된다. 그리고 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다.

동적 타입 언어 변수의 장점은 편하다는 것이다. 하지만 편리함의 이면에는 위험도 존재한다

변수값이 언제든지 변경될 수 있기 때문에 복잡한 프로그램에서는 변화하는 변수 값을 추적하기 어려울 수 있다.

변수의 타입이 고정되어 있지 않고, 동적으로 변하는 동적타입 언어의 변수는 값의 변경에 의해 타입도 언제든지 변경 될 수 있다. 다라서 동적 타입 언어의 변수는 값을 확인하기 전에는 타입을 확신할 수 없다.

즉, 동적 타입 언어는 유연성은 높지만 신뢰성은 떨어질 수 있다.

이러한 문제를 해결하기 위해 ES6에서는 const가 등장했다. 상수선언을 통해 변수가 변하는 것을 막을 수 있다.

profile
프론트엔드

0개의 댓글