Skip to content

06. 데이터 타입

DD edited this page Jul 10, 2021 · 2 revisions

데이터 타입

라인 피드와 캐리지 리턴

라인 피드(LF)

\n 행을 한 칸 아래로

캐리지 리턴(CR)

\r (커서를 맨 앞으로)

맥OS와 윈도우 차이

  • 맥은 LF로 새 줄을 나타내고, 윈도우는 CR + LF로 새줄을 나타낸다. 그렇기에 서로의 개행 문자를 인식하지 못하지만, 대부분 텍스트 에디터를 운영체제에 맞게 개행 문자를 자동 변환하니 문제 없다

JS의 개행문자

JS는 라인 피드와 캐리지 리턴 모두 개행을 의미하지만, 주로 라인 피드(\n)을 사용해 개행한다.


Symbol 타입

ES6에서 추가된 따끈따끈한 7번 째 타입

  • 다른 값과 중복 되지 않는 유일무이한 값이다. 주로 객체의 프로퍼티 키의 이름 충돌을 방지하기 위해 사용한다.

  • 예를 들어 내가 라이브러리나 유틸을 만들었고, 그 안에 obj 객체에 'doNotTouch'라는 프로퍼티 키가 있다고 가정하자.

  • obj는 const로 선언하더라도 내부값은 변경이 가능하기에, 사용자가 obj.doNotTouch = '싫은데?'라고 변경해버리면, 코드가 망가질 위험이 있다.

  • 이 때 doNotTouch를 Symbol로 선언해서 사용하면 이를 방지할 수 있다.


데이터 타입이 필요한 이유

  • 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해

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

  • 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해


타입을 갖는건 변수가 아니라 변수의 값이다.