자바스크립트 데이터 타입
자바스크립트의 데이터 타입에는 기본 타입과 참조 타입이 있다. 기본타입은 숫자, 문자열, boolean, undefined, null 값이 있고
참조형에는 객체(배열, 함수, 정규 표현식)이 있다.
자바스크립트 기본 타입
기본 타입에는 Nmber, String, Boolean, null, undefined가 있다.
이들 타입의 특징은 그 자체가 하나의 값을 나타낸다는 것이다. 자바스크립트는 느슨한 타입의 언어이기 때문에 변수를 선언할 때 타입을 미리 지정하지 않고 var(es5)라는 키워드로 변수를 선언하여 어떠한 값이라도 데이터를 저장할 수 있다.
var intNum = 10;
var floatNum = 0.1;
var singleQuoteStr = 'single quote string';
var boolVar = true;
var emptyVar;
var nullVar = null;
console.log(typeof intNum, typeof floatNum, typeof singleQuoteStr, typeof boolVar,
typeof emptyVar, typeof nullVar);
출력 결과
number number string boolean undefined object
숫자
다른 언어와 달리 JS에서는 하나의 숫자형만 존재한다. (모든 숫자를 64비트 부동 소수점 형태로 저장한다.)
또한 모든 숫자를 실수로 처리하므로 나눗셈 연산에 주의하여야 한다.
var num = 5 / 2;
console.log(num);
console.log(Math.floor(num));
출력 결과
2.5
2
Math.floor 메서드는 정수 부분만 구하는 JS의 메서드이다.
문자열
문자열은 작은 따옴표나 큰 따옴표를 이용해서 생성한다. 또한 JS의 문자열은 문자 배열처럼 인덱스를 이용할 수 있다. 또한 한 번 생선된 문자열은 수정이 불가능 하다.
var str = 'easy';
console.log(str[0], str[1], str[2], str[3]);
str[0] = 'E';
console.log(str);
출력 결과
e a s y
easy
boolean값
JS에서 사용하는 true, false 값이다.
null과 undefined
두 타입 모두 ‘값이 비어 있다.’를 나타내기 위해 사용된다. 값이 할당되지 않은 변수는 undefined이며 이는 변수 자체의 값이 undefined이다. (타입이자 값이다.) 여기 주의할 점은 null의 타입이 object라는 것인데 이 때문에 타입 변수인자를 확인할 때에는 일치 연산자를 사용하여야 한다. (===)
var nullVar = null;
console.log(typeof nullVar === null);
console.log(nullVar === null);
출력 결과
false
true
JS 객체 타입
JS에서 기본 타입을 제외한 모든 것은 객체이다. 배열, 함수, 정규표현식 들도 마찬가지이다. 객체는 단순히 이름(key):값(value)를 저장하는 형태이다. 기본 타입은 하나의 값마늘 가지는 데에 반해 겍체는 여러 개의 프로퍼티를 포함할 수 있다. 그래서 기본 타입을 포함하거나 다른 객체를 가리킬 수도 있다. 또한 프로퍼티의 성질에 따라 함수로 포함시킬 수도 있으며 이러한 프로퍼티를 메서드라고 부른다.
JS 객체 생성 방법.
객체 생성 방법에는 3가지가 있다. 그 방법들에 대해 알아보자
Object() 생성자 함수.
JS에서는 객체를 생성할 때 내장 Object() 생성자 함수를 제공한다. 예제를 통해 살펴보자.
var foo = new Object();
// foo property make up
foo.name = 'Jang';
foo.age = 27;
foo.gender = 'male';
console.log(typeof foo);
console.log(foo);
출력 결과
object
{ name: ‘Jang’, age: 27, gender: ‘male’ }
Object() 생성자 함수를 통해 객체를 생성하였고 그 타입은 object이고 변수 foo에 3가지 프로퍼티가 추가되었음을 알 수 있다.
객체 리터럴 방식.
리터럴이란 표기법을 의미한다. 즉 간단한 표기법으로 객체를 생성하는 방식이다.
var foo = {
name : 'Jang',
age : 27,
gender : 'male'
};
console.log(typeof foo);
console.log(foo);
출력 결과
object
{ name: ‘Jang’, age: 27, gender: ‘male’ }
생성자 함수 이용.
객체를 함수를 통해서도 생성할 수 있다. 생성자 함수라고 하는데 다음에 더 자세히 다루도록 하겠다.
다음 시간에는 객체 프로퍼티 표기법과 참조타입의 특성에 대해 살펴보겠습니다.