자바스크립트에서는 기본 타입은 숫자, 문자열, 불린값을 비롯해 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연산자를 사용하면 안되고,
===(일치 연산자)를 사용해서 변수의 값을 직접 확인해야한다.
'프로그래밍 > JavaScript' 카테고리의 다른 글
원신 MBTI를 만들어 봤습니다. (휴대폰 미디어 쿼리 완료) (0) | 2021.08.13 |
---|---|
[JS] DOM 연습 (0) | 2021.01.15 |
자바스크립트 함수의 정의 (0) | 2020.12.30 |
자바스크립트 == (동등) 연산자와 === (일치) 연산자 (0) | 2020.12.30 |
자바스크립트의 핵심 개념 (0) | 2020.10.12 |