혬코 2021. 12. 22. 12:24

크게 기본형과 Object(객체)형이 존재한다.

1. 기본형

  • Number - 숫자형
  • String - 문자열
  • Biglnt - -(253-1) ~ 253-1의 범위를 벗어난 숫자형 
  • undefined - 값이 할당되지 않은 상태
  • Boolean - 논리 타입

1) Number - 숫자형

정수, 부동 소수점 숫자를 나타낸다. Infinity(무한대), NaN(Not a Number)를 포함하며, 연산자(+, -, /, *, %)를 통해 연산할 때 쓰인다.

1 + 1
> 2
5 - 2
> 3
4 * 3
> 12
10 / 2
> 5
10 % 3
> 1


2) String

문자열로 텍스트를 나타내는 데 사용된다. 큰따옴표(")나 작은따옴표(')로 감싸서 사용한다.

"Hello Javascript world"
> "Hello Javascript world"
"Hello Javascript world".length
> 22
"abcd".toUpperCase()
> 'ABCD'

.length는 띄어쓰기를 포함한 문자열의 갯수를 나타내주는 properties이며, .toUpperCase()는 소문자로 적힌 텍스트를 대문자로 나타내주는 method이다.
찾는 문자가 몇번째에 있는지 나타내주는 .indexOf('문자')와 같이 다른 유용한 properties와 method가 많이 있는데, 일일이 설명할 수는 없어 아래 링크를 남겨 놓겠다.

 

String.length - JavaScript | MDN

length 속성은 UTF-16 코드 유닛을 기준으로 문자열의 길이를 나타냅니다.

developer.mozilla.org

위 링크에서 왼쪽에 Related Topics를 보면 다른 method들을 확인할 수 있다.

추가로 백팁(역따옴표/`)으로 변수나 연산식을 문자열의 일부로 만들 수도 있다.
(백팁은 키보드 자판 "~"를 shift를 누르지 않은 상태로 누르면 된다.)

// 변수를 문자열로 삽입
alert(`계산의 결과는 ${5+7}`);
// 계산의 결과는 12


3) BigInt - -(253-1) ~ 253-1의 범위를 벗어난 숫자형 

길이에 상관없이 정수를 나타낼 수 있는 자료형으로 정수 끝에 "n"을 붙이면 된다.

const BigInt = 9876543109876543210n


4) undefined - 값이 할당되지 않은 상태

변수는 선언했지만, 값을 할당하지 않았을 경우 변수에 undefined 값이 자동으로 할당된다.

let name;

alert(name);
// 'undefined'가 출력된다.


5) Boolean - 논리 타입

true / false 두 가지 값만 존재하는 자료형으로 true는 긍정, false는 부정을 나타낸다.


2. Object(객체)형

위이 기본형은 원시형이라고도 하는데 문자열이면 문자열, 숫자면 숫자 등 하나의 데이터만 담을 수 있는 반면에, 객체형은 다양한 데이터를 담을 수 있다.
가장 큰 차이점은 원시형은 변수에 값을 할당할 때 복사를 해서 전달하지만, 객체는 메모리 주소를 복사한다. object class 뿐만 아니라 배열, 딕셔너리, date 등 다양한 종류의 객체가 존재한다.

 

+
이외에도 알 수 없는 값을 나타내는 null, 객체의 고유 식별자를 만들 떄 사용하는 Symbol형이 존재한다.