3. 자바스크립트 데이터 타입과 연산자 (1)
모든 언어의 기본은 데이터 타입을 파악하는 것에서부터 시작.
자바스크립트의 값들은 크게 기본 타입과 참조 타입으로 나뉜다.
├─자바스크립트 데이터 타입
│ ├─기본 타입
│ │ 숫자(Number)
│ │ 문자열(String)
│ │ 불린값(Boolean)
│ │ Undefined
│ │ null
│ └─참조 타입
│ └─ 객체
│ 배열(Array)
│ 함수(Function)
│ 정규표현식
이번 장에서 다루는 내용들
- 기본 데이터 타입(숫자, 문자열, 불린값, null, undefined
- 참조 데이터 타입(객체, 배열)
- 주의해야 할 연산자
3.1 자바스크립트 기본 타입
자바스크립트에서 기본 타입 : 숫자, 문자열, 불린값, null, undefined
특징 : 그 자체가 하나의 값을 나타낸다.
자바스크립트는 느슨한 타입 체크 언어
엄격한 타입 체크 언어인 C 언어는 변수를 선언할 때 변수에 저장할 데이터의 종류(문자, 정수, 실수 등)에 따라 char, int, float 등의 예약어를 이용해서 변수의 데이터 타입을 지정해야 한다. 그리고 이렇게 지정된 변수의 데이터 타입에 맞게 해당 변수에 값을 저장하고 사용하는 것이 일반적.
반면 자바스크립트는 변수를 선언할 때 타입을 미리 정하지 않고, var라는 한 가지 키워드로만 변수를 선언.
이렇게 선언된 변수에는 어떤 타입의 데이터라도 저장하는 것이 가능.
따라서 자바스크립트는 변수에 어떤 형태의 데이터를 저장하느냐에 따라 해당 변수의 타입이 결정됨.
예제 기본 타입의 변수들을 생성하고, 해당 변수의 타입을 자바스크립트의 typeof 연산자를 이용해 출력한 것.
typeof 연산자는 피연산자의 타입을 리턴.
예제 3-1 자바스크립트 기본 타입
// 숫자 타입
var intNum = 10;
var floatNum = 0.1;
// 문자열 타입
var singleQuoteStr = 'single quote string';
var doubleQuoteStr = "double quote string";
var singleChar = 'a';
// 불린 타입
var boolVar = true;
// undefined 타입
var emptyVar;
// null 타입
var nullVar = null;
console.log(
typeof intNum,
typeof floatNum,
typeof singleQuoteStr,
typeof doubleQuoteStr,
typeof boolVar,
typeof nullVar,
typeof emptyVar
);
[return]
number number string string boolean object undefined
3.1.1 숫자
자바스크립트는 하나의 숫자형만 존재.
자바스크립트에서는 모든 숫자를 64비트 부동 소수점 형태로 저장 (C언어의 double 타입과 유사)
따라서 intNum
과 floatNum
변수 모두 typeof
연산자의 결과값이 number
타입이다.
자바스크립트에서는 정수형이 따로 없고, 모든 숫자를 실수로 처리 나눗셈 연산을 할 때 주의
예제 3-2 자바스크립트 나눗셈 연산
var num = 5 / 2;
console.log(num); // (출력값) 2.5
console.log(Math.floor(num)); // (출력값) 2
정수 나누기 정수를 했더라도 5와 2가 둘 다 실수로 취급되므로 소수 부분까지 출력된다.
소수 부분을 버린 정수 부분만을 구하고 싶다면, Math.floor() 자바스크립트 메서드를 사용.
3.1.2 문자열
문자열은 작은 따음표(‘)나 큰 따옴표(“)로 생성
자바스크립트에서는 C언어의 char 타입과 같이 문자 하나만을 별도로 나타내는 데이터 타입은 존재하지 않음.
주의점 : 한 번 정의된 문자열은 변하지 않는다.
예제 3-3 자바스크립트 문자열 예제
// str 문자열 생성
var str = 'test';
console.log(str[0], str[1], str[2], str[3]);
// 문자열의 첫 글자를 대문자로 변경?
str[0] = 'T';
console.log(str); // (출력값) test
문자열은 문자 배열처럼 인덱스를 이용한 접근 가능
문자열의 첫 글자를 대문자로 변경하고자 해도 에러는 발생하지 않는다.
그러나 console.log(str) 문으로 문자열을 출력하면, 우리가 의도했던 출력결과인 ‘Test’가 아니라 원래의 문자열인 ‘test’가 출력된다. 즉, 자바스크립트에서는 한 번 생성된 문자열은 읽기만 가능하고 수정은 불가능하다.
3.1.3 불린값
true와 false 값을 나타내는 불린 타입
3.1.4 null과 undefined
이 두 타입은 모두 자바스크립트에서 ‘값이 비어있음’을 나타낸다.
자바스크립트 환경 내에서 기본적으로 값이 할당되지 않은 변수는 undefined 타입이며, undefined 타입의 변수는 변수 자체의 값 또한 undefined.
undefined는 타입이자, 값을 나타낸다.
예제 3-1에서 emptyVar 변수에는 아무런 값이 할당되지 않았으므로 undefined 타입이 출력.
반면 nullVar 변수와 같이 null 타입 변수의 경우는 개발자가 명시적으로 값이 비어있음을 나타내는 데 사용.
null 타입 변수인 nullVar의 typeof 결과가 null이 아니라 object
자바스크립트에서는 null 타입 변수인지를 확인할 때 typeof 연산자를 사용하면 안 되고, 일치 연산자 (===)를 사용해서 변수의 값을 직접 확인해야 한다.
예제 3-4 null 타입 변수 체크
// null 타입 변수 생성
var nullVar = null;
console.log(typeof nullVar === null); // (출력값) false
console.log(nullVar === null); // (출력값) true
#책/인사이드자바스크립트
'language > JavaScript' 카테고리의 다른 글
4. 함수와 프로토타입 체이닝 (2) (0) | 2019.11.21 |
---|---|
4. 함수와 프로토타입 체이닝 (1) (0) | 2019.11.21 |
3. 자바스크립트 데이터 타입과 연산자 (3) (0) | 2019.11.19 |
3. 자바스크립트 데이터 타입과 연산자 (2) (0) | 2019.11.19 |
1. 자바스크립트 기본 개요 (0) | 2019.11.19 |