EtoC
JavaScript의 데이터타입 본문
JavaScript의 데이터타입의 종류
Data(자료)란 프로그램이 처리할수 있는 모든것으로 자효형태에 따라 나눠놓은것을 자료형(DataType)이라 한다.
자바스크립트의 데이터 타입은 원시타입과 객체타입으로 나뉜다.
원시타입(Primitive dataType): 객체가 아닌 기본자료형이라고 하며, 변경불가능한 값으로 값에 의해 전달(pass-by-value)된다.
객체(참조)타입(Object type, Reference type):객체를 기반으로 하는 자료형으로, 참조에의한 전달(pass-by-reference)방식으로 전달된다.
자바스크립트는 객체기반의 스크립트 언어로 원시타입을 제외한 모든것이 객체로 이루어져있다.
원시타입 | 객체타입 |
---|---|
Number | Object |
String | |
Boolean | |
Null | |
Undefined | |
Symbol(ES6) |
1.기본(원시)타입
1. Number(숫자형)
우리가 알고있는 그 숫자로, 기본적인 사칙 연산을 할 수 있으며, 계산방법도 일반적인 수학의 연산방식과 같다.
+ | - | * | / | % |
---|---|---|---|---|
더하기 | 뺴기 | 곱하기 | 나누기 | 나머지값 |
2. String(문자열)
String타입은 문자데이터를 나타내는 방식이다.
(1) 문자열을 만드는 방식
문자열을 나타내는 방법은 2가지가 있다.
'ㅇㅇㅇ' | "ㅇㅇㅇ" |
---|---|
작은따옴표로 감싸기 | 큰따옴표로 감싸기 |
(2)따옴표를 그대로 쓰고 싶은경우
""를 사용하고 싶은경우''(작은따옴표)안에 ""(큰따옴표)를 같이 사용하면 된다.
반대의 경우는 반대로 입력하면 된다.
<script>
"Hello \"World\""
'Hello "World"'
"Hello 'World'"
</script>
(3) 이스케이프 문자
위의 방법말고도 이스케이프문자( \ )를 사용하는 방법이 있다.
이스케이프 문자에는 \
말고도 여러 기능이있다.
\n | \t | \ \ |
---|---|---|
줄바꿈 | 탭 | \ |
3. Boolean
자바스크립트에서 참과 거짓의 값을 표현할때 불 자료형을 사용하며, 다양한 형태로 표현할 수 있지만, 불 자료형은 True와 False 이 2가지다.
(1) 불 자료형
불 자료형 | 설명 |
---|---|
true | 참 |
false | 거짓 |
(2) 비교연산자를 이용한 불 표현
True와 False 외에 두 대상을 비교하는 비교연산자를 사용하여 불을 만들수있다.
자바스크립트의 비교연산자는 숫자는 물론 문자열도 비교할 수 있다.
비교연산자 | 설명 |
---|---|
=== | 양쪽이 같다 |
!== | 양쪽이 다르다 |
> | 왼쪽이 크다 |
< | 오른쪽이 크다 |
>= | 왼쪽이 더 크거나 같다 |
<= | 오른쪽이 더 크거나 같다 |
(3) 불 부정 연산자
논리 부정 연산자 | ! | 참을 거짓으로, 거짓을 참으로 만든다. |
---|
!true
=>false
(4) 불 논리합/논리곱 연산자
- 논리합 연산자( || ) : 양쪽 값중 하나만 true여도 true
- 논리곱 연산자( && ) : 양쪽 값 모두 true 일때 true
<script>
if (){
alert ()
}
</script>
4. null
- null은 변수에 값이 없을때 나타난다.
- null의 typeof 연산결과는 null이 아닌 object로 뜨는데 이는 자바스크립트 초기의 버그로 수정시의 부작용때문에 고치지 않고 있다고 한다.
5. undefined
- 상수(const)와 변수(let)를 선언하지 않은경우, 값을 할당하지 않은 변수의 경우 나타난다.
typeof(a)
=>"undefined"
let a
=> "undefined"
6. Symbol
심볼은 ES6에서 새롭게 추가된 타입으로 이름의 충돌 위험이 없는 유일한 객체의 Property Key를 만들기 위해 사용한다.
2. 객체(참조)타입
1. object(객체)
자바스크립트에서 기본타입을 제외한 모든 값은 객체로 취급되기 때문에 배열이나 함수 등의 모든것이 객체로 표현된다.
실제로 배열을 typeof([])로 실행해보면 "object"라는 결과가 나온다.
1-2. Array(배열)
배열은 여러 변수를 한번에 선언하여 다룰 수 있는 자료형으로 요소와 인덱스가 있다.
<script>
let array = ['a', 'b', 'c']
</script>
인덱스 | 요소 |
---|---|
0 | a |
1 | b |
2 | c |
배열은 대괄호([])를 사용하며 내부에 '요소'라는 값을 입력한다. 각 요소는 쉼표(,)를 사용하여 구분한다.
<script>
let array = [요소 ,요소, 요소, 요소]
</script>
배열 안에 있는 요소의 순서를 인덱스(index)라고 한다.