본문 바로가기
JavaScript Study

JavaScript - #5. 데이터 타입 (2)

by KMS_99 2023. 8. 24.

  • Boolean 타입

Boolean 타입은 논리적으로 참인지 거짓인지를 나타내며 값으로는 true, false 두개가 있다.

//Boolean타입
let trueCase = true;
console.log(trueCase); //true

let falseCase = false;
console.log(falseCase); //false

let num = 10;
console.log(num == 10); //true
console.log(num == 100); //false

조건에 따라서 실행이 달라지는 조건문에서 자주 사용된다.


  • undefined 타입

undefined 타입은 단어 뜻 그대로 정의되지 않은 것을 나타낸다.

var로 선언된 변수는 호이스팅에 의해 최초 undefined로 초기화가 되게된다.

//undefined 타입
console.log(undefinedCheck); //undefined
var undefinedCheck;

undefined는 그러면 언제 사용하는 것인가?

사실 사용할 곳이 거의 없다.

 

다음에 알아볼 null 타입으로 없음을 나타내기 때문에 undefined의 사용을 권장하지 않는다.


  • null 타입

null 타입의 값은 null 하나이다.

null 타입은 변수에 값이 없음을 명시하고 싶을 때 사용한다.

이미 초기화 된 값이 있는 변수에 null로 재할당을 하면 더이상 그 변수의 값을 참조하지 않겠다 라는 뜻으로 받아들여지며, 이전에 할당 되어있던 값을 제거함을 나타낸다.

//null 타입
var nullCheck = "abc";
nullCheck = null; //소멸

 


  • Symbol 타입

ES6에서 새롭게 추가된 타입으로 변경이 불가능한 원시 타입의 값이다.

절대 중복될 수 없으며, 이 때문에 고유한 프로퍼티 키를 만들때 주로 사용한다.

//Symbol 타입

let key = Symbol('key')
console.log (typeof key) // symbol

let obj = { key:'value' }

console.log (obj.key) // value

지금까지 원시 타입의 데이터타입을 알아보았다.

객체 타입에 대한 내용은 이후 나오는 챕터에서 공부해볼 예정이다.

 

결론적으로 데이터 타입이 왜 필요할까?

 

바로 효율적인 메모리 공간 확보이다.

 

데이터는 메모리에 저장된다.

그 값은 저장만 하는 것이 아니라 참조가 이루어진다.

만약에 데이터 타입이 없어 모든 데이터가 같은 메모리 공간을 부여 받는다고 해보자.

 

정말 비효율적일 것이다.

 

a 데이터는 100의 공간이 필요하고 b데이터는 1000의 공간이 필요하다고 가정하자.

이 상태에 모든 데이터가 500의 공간을 부여받는다면 어떻게 될까

 

a데이터는 공간의 낭비가 발생할 것이고, b데이터는 데이터 손실이 일어날 것이다.

 

즉, 데이터 타입을 통해 각 데이터가 저장되고, 참조되는데 필요한 공간의 크기가 결정되는 것이다.

 

또한 컴퓨터는 2진수를 통해 데이터를 해석한다. 유저가 원하는 데이터를 불러오기 위해서는 데이터 타입이 필요하다.

예를 들어보자.

문자열 'A'는 2진수로 변환하면 0100 0001 이다.

숫자 65를 2진수로 변환하면 0100 0001 이다.

 

유저가 원하는 데이터는 다르지만 2진수를 변환했을 때는 같다.

컴퓨터는 유저가 다른 데이터 타입을 원하는 것을 알아야한다.

따라서 데이터 타입 구분이 필요한 것이다.

 

데이터 타입이 필요한 이유를 정리해보면,

1. 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해서 필요하다.

2. 값을 참조할 때 한번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해 필요하다.

3. 메모리에서 읽어 들인 2진수가 어떤 데이터인지 결정하기 위해 필요하다.