JS/deep dive

[Javascript] 데이터 타입

디디벨 2022. 4. 28. 08:44
728x90

데이터타입값의 종류이다. 

 

 

값의 의미는 이전 포스팅을 참고하면 된다. 👇 

 

https://designkyeong.tistory.com/10

 

자바스크립트 ES6에서는 원시타입과 객체타입으로 7가지 타입을 제공한다.

 

원시타입으로는 다음과 같다.

 

- 숫자타입
- 문자열타입
- 불리언타입
- undefined타입
- null타입
- 심벌타입

 

객체타입으로는 다음과 같다.

 

- 객체
- 함수
- 배열 등등

 


예를 들어 숫자타입 1과 문자열타입 "1"은 다르다. 숫자타입은 주로 산술 연상을 위해 생성되지만

문자열 타입은 주로 텍스트를 화면에 출력하기 위해 생성된다.

 

 

1. 숫자 타입

 

다른 언어와 다르게 자바스크립트는 모든 수를 실수로 처리한다. 

그렇기때문에 정수로 표시된다고 해도 사실은 실수이며 정수로 표시되는 수끼리 나누더라도 실수가 나올 수 있다. 

 

실수 1은 실수 1.0과 같다

또한 NaN(not-a-number)이라는 값이 있다. 

산술연산이 불가능할때 나오는 값이다.

 

1과 문자열 'a'의 곱셈은 NaN이다

2. 문자열 타입

 

문자열 타입은 텍스트 데이터이다.

 

''(작은따옴표), ""(큰따옴표), ``(백틱)으로 텍스트를 감싼다.

맥북에서 백틱을 입력하는 방법은 option과 ₩를 같이 눌러주면 된다.

 

따옴표로 감싸지 않으면 자바스크립트는 토큰으로 인식하기 때문에 따옴표로 꼭 감싸줘야한다.

 

따옴표로 안 감싸주면 에러가 난다

 

 

 

2-1. 템플릿 리터럴

 

ES6부터 템플릿 리터럴이라고 하는 새로운 문자열 표기법이 도입되었다. 

멀티라인 문자열, 표현식 삽입 등을 제공하는데 코드가 실행될때 일반 문자열로 변환되어 처리된다.

템플릿 리터럴은 문자열 문자열과 달리 ``(백틱)만 사용하여 표현한다.

 

멀티라인 문자열의 경우 일반 문자열에서는 안되었던 줄바꿈을 허용한다.

다음행으로 이동하는 이스케이프 시퀀스 중 \n을 사용하여 줄바꿈을 표현할 수 있다.

 

 

 

문자열 연결 연산도 표현식 삽입으로 더 간편하게 표현할 수 있다.

 

var a = "apple"
var b = "banana"

console.log('this is ' + a + ' and ' + b)//ES5 문자열 연결

console.log(`this is ${a} and ${b}`)//ES6 표현식 삽입

//this is apple and banana

 

표현식 삽입은 반드시 ``(백틱)안에서 사용해야한다.

 

 

 

3. 불리언 타입

모 아니면 도

불리언 타입의 값은 참, 거짓을 나타내는 true와 false뿐이다.

이는 조건문에서 많이 쓰인다.

 

 

 

4.undefined 타입

 

값은 undefined가 유일하다.

이는 처음 변수선언에 의해 확보된 메모리 공간이 할당되기 전에 빈 공간으로 두지않고 undefined로 초기화한다.

 

변수 호이스팅과 관계가 있다.

그와 관련된 글은 👇

 

https://designkyeong.tistory.com/6

 

[Javascript]변수 호이스팅

호이스팅에 앞서 영단어 hoist의 뜻은 다음과 같다. 감아올리다, 끌어올리다 등 무언가를 끌어올린다고 생각하면 쉽다. Hoisting은 사용한 변수를 선언하는 문이 코드의 가장 위로 끌어올려진 것처

designkyeong.tistory.com

 

 

 

5.null 타입

 

값은 null이 유일하다.

 

null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다. 

변수에 null을 할당하는 것은 변수가 이전에 참조하던 변수 값을 더 이상 참조하지 않겠다는 의미다. 

즉, 이전에 있던 값을 명시적으로 제거하며 값이 없다는것을 명시하는 것이다.

 

 

 

 

6. 심벌타입

 

symbol은 ES6에서 추가된 7번째 타입이다. 

변경 불가능한 원시 타입의 값이며 다른 값과 중복 되지 않는 유일무이한 값이다.

 

다른 데이터 값은 리터럴을 통해 생성하지만 심벌은 symbol 함수를 호출해 생성한다.

이에 대해서는 추후에 더 공부한 뒤 따로 포스팅 할 예정이다.

 

 

 

7. 객체타입

 

지금까지 살펴본 6가지 데이터 타입 이외의 값은 모두 객체 타입이다.

 

자바스크립트는 객체 기반의 언어이며,

자바스크립트를 이루고 있는 거의 모든것이(6가지 데이터타입 제외)

객체라는 사실을 잊으면 안된다.

 

728x90

'JS > deep dive' 카테고리의 다른 글

[Javascript] 표현식과 문  (0) 2022.04.27
[Javascript]변수 호이스팅  (0) 2022.04.23
[Javascript] 변수  (0) 2022.04.22