java script 데이터 타입에 대해 아라보자.
java script 데이터 타입은 크게 primitive, object, function 총 3가지로 분류된다.
1. primitive : single item
- 더이상 작은 단위로 나눠질수 없는 타입으로 number, string, boolean, null, udefined, symbol 등 우리가 다른 언어에서 사용하는 데이터 타입들이다. 개인적으로 C언어에 익숙했을 당시 int, char 처럼 자료형으로 선언을 하지 않는 모습이 굉장히 신기했다.
2. object : box container
- single item 들을 여러개 묶어서 한단위로 다룰수있는 데이터 타입. 굉장히 많이 쓰기 떄문에 추후 더 자세히 설명하겠다.
3. function : first function
- javascript는 first function을 지원하는 언어이다. 이말이 무슨말이냐면 이 언어에서는 함수또한 변수에 저장하고, 리턴타입으로 줄수 있으며 함수의 파라미터로도 들어갈수 있음을 의미한다.
이렇게 세가지 타입이 있고 해당 포스트에서는 primitive타입을 먼저 다루겠다
1. number
! java script는 int, short, long, float, double이 없다 !
특이한 점은 javascript에는 모~든 숫자에 대한 데이터 타입이 number로 통일된다는 점이다.
다른 언어들은, 불필요한 메모리 사용량을 줄이기 위해 정수타입 하나에도 int, short, long등 저장할수 있는 여러가지 방법이 있는데,
javascript는 다른 언어들과 달리 모든 실수, 정수 숫자에 대한 데이터 타입이 number하나 뿐이다.
또 let, const 를 보면 알겠지만 javascript는 dynamic type 언어이기 때문에 변수를 선언할때 자료형을 명시하지 않아도 된다.
이처럼 정수인 17과 실수인 18.1 type이 모두 number인것을 볼수있다.
2. string
! java script는 char가 없다 !
java script는 또한 굉장히 편리하게도 문자, 문자열 상관없이 string(문자열)타입으로 정의된다.
또 let, const 를 보면 알겠지만 javascript는 dynamic type 언어이기 때문에 변수를 선언할때 자료형을 명시하지 않아도 된다.
string 은 + 덧셈연산이 가능하고, 백틱기호인 ` ` (esc키 아래) 안에서 ${ 변수명 } 으로 출력이 가능하다.
3. boolean
! 딱히 쓸말이 없다 !
꽤나 중요하지만 간단한 boolean 타입이다.
false : 0, null, undefuned, NaN, ' ' ( 빈문자열 ) 이고
true : 위 값들을 제외한 다른 모든 값 이다.
아래와 같이 true로 바로 값을 할당해도 되고, 3>1 처럼 표현식의 연산결과로도 값을 할당할수 있다.
4. null, undefined
다음은 null과 undefined이다.
두 자료형은 서로 다른 자료형인데
null은 텅텅빈 아무것도 아닌값이라는 의미를 명시할때 할당하는 '자료형' 이고,
undefined는 선언만 되고 아직 값이 정해지지 않을떄 사용하는 '자료형' 이다.
비슷해보이지만, 전혀 다른 자료형이고 쓰임새도 전혀 다르다.
아래 예시를 보면 null을 명시적으로 할당했을떄는 null로 나오지만,
선언만 한 x에는 undefined로 나오는것을 볼수있다.
y처럼 undefined를 직접 할당할수도 있다.
5. null, undefined
symbol은 map등 다른 자료구조 혹은 동시다발적으로 일어날수있는 코드에서 우선순위를 부여할때 필요한 자료형이다.
string타입은 다른 변수에 같은 값을 할당했을때, 동일한 값으로 처리되지만
symbol은 다른변수에 같은 값을 할당하면, 다른값으로 처리되며,
같은값으로 처리하고 싶을경우 아래와 같이 for메소드를 붙여줘야한다.
아래를 보면 id로 할당된두 symbol이 다른값으로 처리되어 비교연산의 결과값이 false로 출력되고
for 메소드를 붙였을떄 true값이 되는것을 볼수있다.
추가적으로 symbol의 값을 출력할떄는 그냥 쓰면 안되고 description을 꼭 붙여줘야한다.
'javascript' 카테고리의 다른 글
[javascrip 기본] javascript의 object 사용법 (0) | 2023.08.31 |
---|---|
[javascrip 기본] javascript의 class, 생성자 , method (0) | 2023.08.23 |
[javascript 기본] javascript 함수의 선언과 표현 (1) | 2023.08.20 |
[javascript 기본] javascript의 연산자 / Dynamic typing (0) | 2023.08.16 |
[javascript 기본] 1. let과 const 그리고 var (0) | 2023.08.14 |