모다딥 공부 정리

[ 모다딥 공부 정리 ] 06장 데이터 타입

_moda 2023. 4. 20. 11:58

데이터 타입 개념 정리


데이터 타입이란

  • 데이터 타입은 값의 종류를 말한다.
  • 자바스크립트의 모든 값은 데이터 타입을 갖는다.
  • ES6 -> 7개의 데이터 타입을 제공
  • 원시타입 / 객체타입으로 분류된다. 

 

숫자 타입

var integer = 10;   // 정수
var double = 10.12; // 실수
var negative = -20; // 음의 정수

 

문자열 타입

var string;
string = '문자열' // 작은 따옴표
string = "문자열" // 큰 따옴표
string = `문자열` // 백틱

 

템플릿 리터럴

var template = `Template literal`; // 백틱을 이용해 표현
  • 템플릿 리터럴 외 문자열 내에서는 줄 바꿈(개행)이 허용되지 않음
  • 템플릿 리터럴에서는 이스케이프 시퀀스를 사용하지 않아도 줄바꿈,모든 공백이 있는 그대로 적용됨
    • 템플릿 리터럴 표현식 삽입 (백틱 안에 ${} 으로 표현식을 감싼다.)
var first = 'hi'
var last = 'bey'
`${first} ${last}` // 'hi bey'

 

불리언 타입

var foo = true;
console.log(foo); // true

foo = false;
console.log(foo); // false
  • 논리적 참, 거짓을 나타내는 true,false 뿐이다.

 

undefined 타입

var foo;
console.log(foo); // undefined
  • undefined 타입의 값은 undefined 가 유일함
  • 자바스크립트 엔진이 변수를 초기화할 때 사용하는 값
  • 개발자가 의도적으로 변수에 undefined 를 할당하는 것은 권장하지 않음

 

null 타입

var foo = 'Lee';
// 이전 참조를 제거, foo 변수는 더 이상 'Lee'를 참조하지 않음
foo = null;
  • null 타입의 값은  null이 유일함
  • 자바스크립트는 대소문자를 구별하므로 null은 Null, NULL등과 다름
  • 변수에 값이 없다는 것을 의도적으로 명시 할 때 사용한다.
    • 변수에 null을 할당하는 것ㅎ은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미
  • 함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 함

 

심벌 타입

// 심벌 값 생성
var key = Symbol('key');
console.log(typeof key); // symbol

// 객체 생성
var obj = {};

// 이름이 충돌할 위험이 없는 유일무이한 값인 심벌을 프로퍼티 키로 사용
obj[key] = 'value';
console.log(obj[key]); // value
  • 변경 불가능한 원시 타입의 값
  • 심벌 값은 다른 값과 중복되지 않는 유일무이한 값
    • 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용

 

객체 타입

  • 자바스크립트는 객체 기반의 언어이며, 자바스크립트를 이루고 있는 거의 모든 것이 객체이다.
  • 지금 까지 살펴본 데이터 타입 6개 이외의 값은 모두 객체 타입이다.

 

typeof 연산자

var foo;
console.log(typeof foo); // undefined

foo = 3;
console.log(typeof foo); // number

foo = 'hi';
console.log(typeof foo); // string
  • typeof 연산자로 변수의 데이터 타입을 확인할 수 있다. (변수에 할당된 값을 반환)
  • 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정된다. (변수의 타입을 언제든지 자유롭게 변경이 가능)
    • 자바스크립트는 동적 타입의 언어이기 때문에 가능

 

데이터 타입 필요성

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