프로그래밍/JavaScript

자바스크립트 데이터 타입과 연산자!

삐제제 2020. 10. 14. 03:02

 

 

 

 

 

 

자바스크립트에서는 기본 타입은 숫자, 문자열, 불린값을 비롯해 null과 undefinded라는 타입이 있다고한다.

그리고 이들 타입의 특징은 그 자체가 하나의 값을 나타낸다는 것이다.

 

또 자바스크립트는 느슨한 타입 체크 언어 라고 하는데, 이것은 C나 Java는 변수를 선언할때 변수에 저장할 데이터종류에따라 데이터 타입을 알맞게 작성해줘야하는데, 자바스크립트는 알아서 우리가 저장한 변수에 맞게 타입을 결정한다.

 

 

// 숫자 타입
var intNum = 0;
var floatNum = 0.1;

// 문자열 타입
var singleQuoteStr = 'single quote string';
var doubleQuoteStr = 'double quote string';
var singleChar = 'a';

// 불린 타입
var boolVar = true;

// undefinded 타입
var emptyVar;

// null 타입
var nullVar = null;

// typeof 연산자로 피연산자의 타입을 확인할수있다.

console.log(typeof intNum,
			typeof floatNum,
            typeof singleQuoteStr,
            typeof doubleQuoteStr,
            typeof singleChar,
            typeof boolVar
            typeof emptyVar
            typeof nullVar);

 

숫자

 

숫자같은 경우도 Java나 C는 int, long, float, double 등 여러 타입들이 존재하지만, 자바스크립트는 하나의 숫자형만 존재한다. (number)

 

자바스크립트는 모든 숫자를 64비트 부동 소수점 형태로 저장하기 때문이다. 

 

따라서 var 키워드에 정수나 실수를 구분없이 그 값을 바로 저장할 수 있다.

 

주의 할 점은 모든 숫자를 실수로 처리하므로 나눗셈을 할 때, 예를들어 

 

5 / 2 를 할때 2가 아닌, 2.5가 출력된다. 그러면 정수만을 출력하고싶을때는 어떻게하냐면

 

자바스크립트 자체에서 제공하는 메서드인 Math.floor(변수) 를 이용하여 소수 부분을 버린 정수 부분만 출력 할 수 있다.

 

문자열

 

문자열은 작은따옴표 나 큰 따옴표로 생성한다. 숫자 1 왼쪽에있는 ` 로도 가능하다.

자바스크립트는 C언어나 자바와같은 char 타입처럼 문자 하나만을 별도로 나타내는 데이터 타입은 존재하지 않는다.

따라서 한 개의 문자를 나타내려면 길이가 1인 문자열을 사용해야한다.

 

그리고 주의할 점은 한 번 정의된 문자열은 변하지 않는다는 것이다.

// str 문자열 생성
var str = 'test';
console.log(str[0], str[1], str[2], str[3]); // 출력값 : test

//문자열의 첫 글자를 대문자로 변경?
str[0] = 'T';
console.log(str); // 출력값 : test

문자열은 위 코드처럼 배열의 인덱스를 이용해서 접근할 수 있다.

여기서 주목할 점은 srt[0]에 'T'를 넣어서 문자열의 첫 글자에 대한 변경을 시도했다. 에러는 발생하지 않았다.

 

하지만 값도 변하지 않는다. 즉, 자바스크립트에서는 한 번 생성된 문자열은 읽기만 가능하고, 수정은 불가능하다.

 

불린값

true와 false를 나타내는 불린 타입이다.

 

 

null과 undefinded

 

null과 undefinded는 자바스크립트에서 값이 비어있음을 나타낸다.

undefinded는 쉽게말해서 값이 할당되지않은 변수 타입을 의미하고 이 변수 자체의 값 또한 undefinded다.

 

이처럼 자바스크립트에서 undefinded는 타입이자, 값을 나타낸다.

 

null같은 경우는 개발자가 명시적으로 값이 비어있음을 나타내는 데 사용한다.

 

여기서 주의할 점은 null 타입 변수인 nullVar의 typeof 결과가 null이 아니라 object라는 것이다.

따라서 자바스크립트에서는 null 타입 변수인지를 확인할때 typeof연산자를 사용하면 안되고,

===(일치 연산자)를 사용해서 변수의 값을 직접 확인해야한다.