Javascript 기본 데이터 타입
기본 데이터 타입
- 자바스크립트에서 기본타입은 숫자(number), 문자열(String), 불린값(boolean) 그리고 null과 undefined가 있다.
기본데이터타입의 특징은 그 자체가 하나의 값을 나타낸다.
때문에 이름과 값을 프로퍼티로 가지는 객체의 개념과는 다르기 때문에, 객체가 아닌 하나의 변수이다.
숫자(number)
- 자바스크립트의 타입체크는 굉장히 너그롭다(?)
숫자형의 경우 C언어, 혹은 Java에서 int, float, double 등 다양하지만, 자바스크립트에서는 오로지 number 타입으로 존재한다.
※ 또한 자바스크립트 에서는 정수형이 따로 없고, 모든 숫자를 실수로 처리 하므로
var num = 5 / 2; 를 출력하면 2.5 가 나오게 된다.
정수형만 추출하고 싶을땐, Math.floor(num); 이런식으로 자바스크립트 메서드를 사용해야 한다.
var intNum = 100;
console.log("intNum의 타입 == ", typeof intNum);
var floatNum = 8.5;
console.log("floatNum의 타입 == ", typeof floatNum);
위와같이 콘솔을 찍어보았을때 결과는 어떻게 나오는지 보면 알 수 있다.
C언어와는 다르게, 둘다 number 가 나오는 것을 알 수 있다.
※ typeof 연산자는 해당 변수나 객체가 어떤 타입인지를 체크하는 연산자 이다. 피연산자의 타입을 리턴해준다.
문자열(String)
- 문자열은 ''(작은따옴표) 나 ""(큰따옴표)로 표기한다. 기본데이터타입의 문자열의 경우 한번 정의된 문자열은 변하지 않는다.
var str = 'test';
console.log(str[0]); // 출력값 = t
str[0] = 'T'
console.log(str[0]); // 출력값 = t (변하지 않음)
여기서 오해의 소지가 있을 수 있는게, 문자열의 변환이 안된다는 뜻이 str은 평생 'test' 라는 문자열을 가지고 간다는 것이 아니다.
str의 값을 바꾸기 위해서는, str객체를 '재정의' 해야 한다는 뜻이다.
var str = 'test';
console.log(str[0]); // 출력값 = t
this.str = 'TEST';
console.log(str[0]); // 출력값 = T (str 변수가 'TEST'로 바뀜)
불린값(boolean)
- 불린값은 옳고 그름을 나타내는 변수다. true(참) / false(거짓) 의 두가지만을 값으로 가진다.
var blnVar = true;
console.log(typeof blnVar); // 출력값 boolean
if(blnVar){ console.log("조건식에 합당"); }else{ console.log("조건식에 부당"); }
※ 위 예시코드는 간단하게 if문으로 blnVar가 true를 가지고 있는지, false를 가지고 있는지 확인하였다.
boolean값을 활용하는 예시코드는 무궁무진하지만, 기본 사용법만 알아보았다.
null, undefined
- 자바스크립트에서 null과 undefined의 는 둘다 '값이 비어있음' 을 나타낸다. 차이가 있다면 null의 경우 값이 '비어있다'의 의미이고,
undefined의 경우는 '값이 할당되지 않음' 의 차이를 가지고 있다.
주의할 점은, null타입 변수의 경우는 타입체크를 할 때에, typeof 연산자의 결과값이 null이 아닌 object로 나오게 된다.
null타입 변수인지를 확인할때에는 일치연산자(===) 를 사용해서 변수의 값을 직접 확인해야 한다.
var nullVar = null;
console.log(typeof nullVar) // 출력값 object
console.log(nullVar === null) // 출력값 true
var emptyVar;
console.log(typeof emptyVar) // 출력값 undefined
'JavaScript' 카테고리의 다른 글
[Javascript] 함수의 매개변수(arguments 객체) (0) | 2018.04.27 |
---|---|
[Javascript] 자바스크립트 참조(객체)타입 (0) | 2018.04.16 |
[Javascript] 자바스크립트 데이터타입의 종류 (0) | 2018.04.12 |
[Javascript] 자바스크립트 핵심 개념 (0) | 2018.04.10 |
[Javascript] 자바스크립트란? (0) | 2018.04.10 |