Data Types (데이터 유형)
최신 자바스크립트 표준(ECMAScript 2015)에서는 7가지 데이터 유형을 정의하고 있습니다.
■ primitive data type: 객체가 아니며 함수를 제공하지 않는 데이터 유형
- Boolean: true or false
- null: null 값을 표현하는 특수 키워드. 자바스크립트는 대소문자 구분을 하기 때문에 Null, NULL 등과 다른 값
- undefined: 값이 정의 되지 않았음을 의미하는 최상위 속성
- Number: integer (1, 2, 3 등의 정수) 또는 floating-point (3.1415 등의 부동소수점) 등의 숫자
- String: 텍스트 값을 나타내는 일련의 문자
- Symbol: (ECMAScript 2015 에 처음 등장) 인스턴스가 고유하고 변경 할 수 없는 데이터 유형
위와 같이 6개의 primitive data type 과 Object(객체) 를 포함하여 7가지 데이터 유형이 있습니다.
Data type conversion (데이터 형변환)
자바스크립트는 변수 선언 시 변수의 데이터 유형을 지정할 필요가 없으며 스크립트 실행 중 필요에 따라 데이터 유형이 자동으로 변환 됩니다.
1 2 3 4 5 | var testVar = 79; console.log('1. testVar = '+testVar); testVar = "데이터 형 변환이 자동으로 이루어짐"; console.log('2. testVar = '+testVar); | cs |
testVar 라는 변수를 숫자 79 로 선언 했지만 아래 쪽에서 다시 String 형으로 재 선언 해도 오류가 발생 하지 않습니다.
실행 결과는 아래와 같습니다.
1. testVar = 79
2. testVar = 데이터 형 변환이 자동으로 이루어짐
숫자형 값과 문자 값을 + 기호를 이용할 경우 숫자형 값이 문자형으로 변환 됩니다.
1 2 | var plusOperator = '아기는 올해로 ' + 2 + '살 이다'; console.log(plusOperator); | cs |
위 예제를 실행 하면 아래와 같은 결과 값이 나옵니다.
아기는 올해로 2살 이다
1 2 | var x = '38' + 10; console.log(x); | cs |
위 예제도 동일하게 문자형 값과 숫자형 값 사이에 + 기호를 이용하였습니다.
물론 이번에도 숫자 10은 문자형으로 자동 형변환 되어 아래와 같은 결과를 리턴합니다.
3810
+ 기호를 제외한 다른 기호들은 숫자형을 문자형으로 변환하지 않습니다. 반대로 문자형을 숫자형으로 변환 하는것 과 같은 결과를 리턴 합니다.
1 2 3 4 | var y = '38' - 10; console.log('y = ' + y); var z = '38' * 10; console.log('z = ' + z); | cs |
변수 y 와 z 는 각각 10을 빼거나 곱하기를 했습니다.
결과는 아래와 같습니다.
y = 28
z = 380
그렇다면 + 기호와 다른 기호들을 같이 사용할 경우 어떻게 될까요?
1 2 | var a = '38' + 10 - 10; console.log('x = ' + a); | cs |
'38' 과 10 사이에 + 기호가 들어가 첫번째 10을 문자열로 변환합니다.
이때까지 결과 값은 '3810' 입니다.
'3810' - 10 을 한 값이 최종 a 값이 되는데요.
- 기호를 이용하여 '3810' 이 숫자 형이 되어버립니다.
3810 - 10 을 하여 최종 결과는 3800 이 됩니다.
a = 3800
여기서 한가지 의문점이 있을 수 있습니다.
숫자형 문자열은 덧셈이 안될까요?
가능합니다. 바로 + 기호를 문자열 앞에 사용 하는 방법으로 말이죠.
1 2 | var b = +'38' + 10; console.log('b = ' + b); | cs |
위의 x 값을 정의 할때와 다르게 '38' 앞에 + 기호를 이용했습니다.
이는 숫자형 문자열을 숫자로 인식 시키는 기능을 합니다.
결과는 어떻게 나올까요?
당연히 결과 값은 48 이 나옵니다. (그렇지 않다면 굳이 이 예제를 들 필요 없겠죠? ^^)
b = 48
▼ 도움이 되셨다면 로그인이 필요 없는 ▼
▼ 하트 클릭 한번 부탁 드립니다 ▼
감사합니다 :D
'javascript' 카테고리의 다른 글
[ 자바스크립트 프로그래밍 ] 텍스트 잘라내기 및 붙여넣기 (cut and paste) (1186) | 2018.07.26 |
---|---|
[ 자바스크립트 프로그래밍 ] 텍스트를 클립보드에 복사(copy)하기 (1168) | 2018.07.25 |
[ javascript 코딩 ] Variable scope (1209) | 2018.05.23 |
[ javascript 코딩 ] 자바스크립트 재미있게 배우는 사이트 (1528) | 2018.05.21 |
[ javascript 코딩 ] 자바스크립트 변수 선언 - const 키워드 (1392) | 2018.05.18 |