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 에 처음 등장) 인스턴스가 고유하고 변경 할 수 없는 데이터 유형
■ Object: 객체


위와 같이 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 = '아기는 올해로 ' + + '살 이다';
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



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,