본문 바로가기
JavaScript/Deep Dive

06 데이터 타입

by lacuca9 2024. 9. 13.

JS의 모든 값은 데이터 타입을 갖는다

 

<7개의 데이터 타입>

구분 데이터 타입 설명
원시 타입 숫자(number) 타입 숫자. 정수와 실수 구분 없이 하나의 숫자 타입만 존재
문자열(string) 타입 문자
불리언(boolean) 타입 논리적 참(true)과 거짓(false)
undefined 타입 var 키워드로 선언된 변수에 암묵적으로 할당되는 값
null 타입 값이 없다는 것을 의도적으로 명시할 때 사용하는 값
심벌(symbol) 타입 ES6에서 추가된 7번째 타입
객체 타입 객체, 함수, 배열

 

 

템플릿 리터럴

백틱 (` `) 을 사용해 표현한다

표현식 삽입을 통해 간단히 문자열을 삽입할 수 있음
- ${ } : 이때 표현식의 평가 결과가 문자열이 아니더라도 문자열로 타입이 강제로 변환된다 

 

undefined
변수 선언에 의해 확보된 메모리 공간을 undefined로 초기화한다.

# 변수에 값이 없다는 것을 명시하고 싶을 때는 null을 할당한다

 

null

변수에 값이 없다는 것을 의도적으로 명시 할 때 사용

JS 엔진은 누구도 참조하지 않는 메모리 공간에 대해 가비지 콜렉션을 수행할 것이다

 

심벌(symbol) - 변경 불가능한 원시 타입의 값

심벌 값은 다른 값과 중복되지 않는 유일무이한 값이다

심벌은 Symbol 함수를 호출해 생성한다

 

데이터 타입의 필요성

메모리에 값을 저장하려면 메모리 공간의 크기를 결정해야함

# ECMAScript 사양에 숫자 타입은 배정밀도 64비트 부동소수점 형식을 사용.

이는 8바이트로 숫자를 표현하므로 숫자 값의 크기를 8바이트로 설명

 

심벌 테이블

컴파일러 or 인터프리터는 심벌 테이블 이라는 자료 구조를 통해

식별자를 키로 바인딩된 값의 (메모리 주소, 데이터 타입, 스코프) 등을 관리한다

 

동적 타이핑(dynamic typing) - 동적 타입 언어

JS의 변수는 선언이 아닌 할당에 의해 타입이 결정(타입 추론 type inference) 된다.

그리고 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다

 

# 구조적 단점 :
 - 동적 타입 언어의 변수는 값을 확인하기 전에는 타입을 확신할 수 없다

   - 유연성(flexibility)은 높지신뢰성(reliability)은 떨어진다

 

변수 사용시 주의 사항

  1. 변수는 제한적으로 사용
  2. 유효 범위(스코프) 는 최대한 좁게 만든다
  3. 전역변수는 최대한 안쓴다
  4. 변수보단 상수사용한다
  5. 변수명의 의미를 파악할 수 있게 한다

 

 

# 나만의 quiz

  1. JS는 변수 선언에 의해 확보된 메모리 공간을 null로 초기화한다. O / X ?
    - X
  2. 동적 타이핑은 신뢰성(reliability)은 높지만 유연성(flexibility)은 떨어진다는 단점이 있다. O/ X ?
    - X

'JavaScript > Deep Dive' 카테고리의 다른 글

08 제어문  (0) 2024.09.14
07 연산자  (0) 2024.09.14
05 표현식과 문  (0) 2024.09.13
04 변수  (1) 2024.09.13
03 자바스크립트 개발 환경과 실행 방법  (0) 2024.09.13