DYO 공부하는 블로그
[JS] JavaScript의 데이터 타입 본문
자료형의 선언
var: 전역으로 선언되는 선언문, 재선언이 가능함let: var와 용도가 유사하지만 선언된 자리의 위에서 참조하지 못하도록 막힌 선언문, 제선언 불가능const: 한 번 선언하면 바꿀 수 없는 ‘상수’형 변수를 선언하는 선언문
원시 자료형
- 자료형이란, 변수에 저장된 자료의 값이나 형태이다.
- JS의 변수는 JAVA, C 등과 다르게 한번 정의된 자료형에서 고정되는 것이 아니라 초기화한 값의 형태에 따라 언제든 바꿀수 있는 동적 타입(dynamically typed)이다.
숫자형(number) : Number
- 숫자형은 정수 및 부동소수점 숫자(소수)를 나타내며, 곱셈
*, 나눗셈/, 덧셈+, 뺄셈-등의 연산이 가능하다. - 무한대를 나타내는 예약어
Infinity또한Number타입이며, a / 27 과 같은 연산을 했을 때는 NaN이 된다. a + 27과 같은 형태는 자동 형변환에 의해서 a27 같은 형태가 된다. - BigInt :
2^53-1(9007199254740991) 보다 큰 값이나-2^53-1(-9007199254740991)보다 작은 값은 Number 타입을 이용해 나타낼 수 없다. 그 이상의 값을 나타내기 위해서const bigInt = 1234567890123456789012345678901234567890n;
숫자 뒤에 n을 붙이는 방식으로 그 이상으로 큰 수를 표현할 수 있다. (사실 쓸 일 거의 없음.)
문자형(string) : String
- 단일 문자나 문자열을 통틀어 string으로 표현한다.
- ‘’ == “” 자바스크립트에서는 일반적인 언어에서 나타내는 char형태를 정의하는 ‘와 “를 구분하지 않는다. 이 둘의 기능은 동일하다.
let name = “비빔 인간”; console.log(저는 ${name}입니다)
result : 저는 비빔 인간입니다.
`(백틱)을 이용해 ${변수명}을 끼워넣어 문자열 중간에 변수를 삽입할 수 있다. 백틱 사이에는 몇개가 들어가든 상관이 없고, ${1+2}와 같은 연산 작업도 가능하다.
불린형(boolean) : Boolean
true,false두 가지 값 뿐인 자료형이다. 긍정이나 부정의 값을 나타낼 때 사용하며,true는 긍정,false는 부정을 의미한다4 > 1→true,4 < 1→false와 같이 논리식의 결과로 나오는 자료형이다.
값(그래도 자료형)
null 값
null값은 위에서 정의한 어떤 자료형에도 속하지 않는다.null은 비어 있는(empty)값, 존재하지 않는(nothing) 값, 알 수 없는(unknown) 값을 정의하기 위해서 개발자가 사용하는 자료형이다.null은 개발자가 직접 지정함으로써 사용될 수 있다.
‘undefined’ 값
undefined값은 개발자가 직접 지정하는 null 값과 다르게, 개발자가 변수를 ‘초기화하지 않았을 때’undefined값이 된다.
let age = 100;
// 값을 undefined로 바꿉니다.
age = undefined;
alert(age); // "undefined"
위와 같은 형태로 명시적으로 값을 부여할 수는 있지만 권장되진 않는다.
특수한 자료형
객체(Object)
- 원시 객체보다 복잡한 개체(entity)를 표현할 수 있는 자료형이고, 흔히 쓰는 배열
Array,맵(Map),셋(Set)등과 같이 단일 요소가 아니라 여러 개의 복잡한 형태로 2차원, 3차원 형태로 값을 쌓을 수 있거나 참조에 차이가 있거나 하는 형태로 존재한다. - JS에서와 다른 언어와 차이점( 이름만 다르고 기능은 거의 동일 )
- Array : 동일하게 [] or new Array()
- Map : Python의 Dict, JAVA의 Map
- Set : Python의 Set, JAVA의 HashSet
심볼(Symbol)
- 심볼은 특수한 식별자를 만들고 싶을 때 사용할 수 있다. Symbol(’id’)와 같은 형태로 생성할 수 있다.
'JS' 카테고리의 다른 글
| [JS] ?. 옵셔널 체이닝(Optional chaining) (0) | 2025.06.02 |
|---|---|
| [JS] JS의 this 호출 (0) | 2025.05.31 |
| [JS] 호이스팅과 TDZ(Temporal Dead Zone) (0) | 2025.05.29 |
| [JS] ajax (0) | 2025.05.23 |
| [JS] 함수에서 배열 리턴을 return [...arr]로 해야 하는 이유 (0) | 2025.05.15 |