- Published on
모던자바스크립트 6.데이터타입
- Authors
- Name
- Bora Choi
자바스크립트(ES6)는 7개의 데이터 타입을 제공한다.
원시타입(primitive type)
- Number
- String
- boolean
- undefined
- null
- Symbol
객체타입(object/reference type)
객체, 함수, 배열 등
원시타입
1. Number 숫자타입
자바스크립트의 숫자 타입은 한 가지. 배정밀도 64비트 부동소수점 형식을 따르며 모든 수를 실수
로 처리한다.
//숫자 타입
var integer = 10 //정수
var double = 10.12 //실수
var negative = -20 //음의 정수
정수로 표시
되어도 사실은 실수
이기때문에 정수로 표시되는 수끼리 나누더라도 실수가 나올 수 있다.
//숫자 타입은 모두 실수로 처리된다.
console.log(1===1.0); //true
console.log(4 / 2); //2
console.log(3 / 2;) //1.5
숫자 타입은 추가적으로 세가지 특별한 값도 표현 할 수 있다.
Infinity : 양의 무한대 -Infinity : 음의 무한대 NaN : 산술 연산 불가 (not-a-number)
2. String 문자열 타입
자바스크립트에서 문자열은 작은따옴표(''
),큰따옴표(""
),백틱(````)으로 감싼다.
//문자열 타입
var string
string = '문자열'
string = '문자열'
string = `문자열` //(ES6)
string = '작은따옴표로 감싼 문자열 내의 "큰따옴표"는 문자열로 인식된다.'
string = "큰따옴표로 감싼 문자열 내의 '작은따옴표'는 문자열로 인식된다."
자바 스크립트의 문자열은 원시 타입
이며, 변경 불가능한 값 (immutable value)
이다.
3. boolean 불리언
논리적 참,거짓을 나타내는 값. true
, false
4. undefined
undefined타입은 undefined
가 유일.
자바스크립트 엔진이 변수를 초기화 할때 사용하는 값. 변수에 값이 없다는 것을 명시하고 싶을때는 null
을 사용한다.
5. null
null타입은 null
이 유일.
프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시(의도적 부재 intentional absence)
할 때 사용한다.
6. Symbol
다른 값과 중복 되지 않는
유일무이한 값. ES6에서 추가되었다.
객체타입
7. Object 객체타입
자바스크립트를 이루고 있는 거의 모든 것이 객체.
데이터타입의 필요성
몇 바이트의 메모리 공간을 사용해야 낭비와 손실 없이 값을 저장할 수 있는지 알아야한다.
⇒ 데이터 타입
의 종류에 따라 크기의 정해진 크기
의 메모리 공간을 확보
한다.
- 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
- 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해
- 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해
동적 타이핑
변수를 선언 할때 타입을 선언하지 않고 어떠한 데이터 값이라도 자유롭게 할당 할 수 있다.
자바스크립트의 변수는 선언이 아닌 할당
에 의해 타입이 결정(타입 추론type inference)
된다.
재할당
에 의해 변수의 타입
은 언제든지 동적으로 변할 수 있다. ⇒ 동적 타이핑 (dynamic typing)
변수는 타입을 갖지 않는다. 값은 타입을 갖는다.
- 퀴즈 ❓ 숫자 타입을말하시오
정답
실수
Infinity : 양의 무한대
-Infinity : 음의 무한대
NaN : 산술 연산 불가 (not-a-number)
본 포스팅은 모던자바스크립트 deep dive를 공부하면서 정리한 내용입니다.