자바스크립트에는 아래와 같은 데이터 타입이 있다
undefined null boolean number string object Symbol
정의되지 않았다는 뜻이다
(null과는 다른용도로 값이 없다는 것을 나타낸다)
var
, let
, const
를 사용해 변수를 정의할 때,
초기화 하지 않았다면 변수에 undefined
가 할당된다
let msg;
console.log(msg); // 결과 : undefined
비어있는 객체로 값이 없음을 나타낸다
(의도적으로 값이 없음을 나타내며 ''
, ""
없이 사용한다)
let obj = null;
console.log(typeof obj); // 결과 : "object"
null의 타입을 확인해보면 object
라고 나오는데,
아무것도 아닌 빈 객체를 가르키고 있어서 object라고 나온다
boolean은 true
, false
두 가지 값을 가지고 있다
(''
, ""
없이 사용)
스위치를 키거나(true) 끌 때(false),
질문에 대한 답변으로 예(true) 또는 아니오(false)로 나오는 경우를 생각하면 된다
다른 데이터 타입이 boolean으로 변환되는 경우를 살펴보면
true
1. 문자열 : 비어있지 않은 문자열은 모두 ture
2. 숫자 : 0이 아닌 모든 숫자는 true
3. rorcp : null이 아닌 모든 객체는 true
false
1. 문자열 : ''
, ""
비어있는 문자열은 false
2. 숫자 : 0, NaN
3. 객체 : null
4. undefined : 값이 정의되지 않았으므로 false
다른 데이터 타입이 boolean으로 변환되는 경우는 if 조건문에서 유용하게 사용되는데
let result = "실행된다";
if (result) {
console.log(result);
}
// 결과 : "실행된다"
위의 예제를 살펴보면 if 조건문에 변수 result를 넣었다
변수 result는 "실행된다"
라는 문자열을 값으로 가지고 있다
비어있지 않은 문자열은 true
이므로 조건이 블록의 조건이 실행된다
반면에
let result_2 = 0;
if (result_2) {
console.log("실행될까요?");
} else {
console.log("false니 실행이 안되지요");
}
// 결과 : "false니 실행이 안되지요"
if 조건문에 변수 result_2를 넣었다
변수 result_2는 0
이라는 숫자를 값으로 가지고 있다
숫자 0은 false
이므로 if 블록의 조건이 실행되지 않고,
flase일때 실행되는 else
블록의 조건이 실행된다
number(숫자) 데이터 타입은 -4, 8, 1516, 23.42 와 같이 소수를 포함한 모든 숫자를 말하며,
''
, ""
없이 숫자만 쓸 때 Number형으로 인식한다
let num = 3.555;
let num2 = '3';
console.log(typeof num); // 결과 : "number"
console.log(typeof num2); // 결과 : "string"
숫자를 ''
, ""
안에 넣으면 문자열이 된다
string(문자열) 데이터 타입은 ''
나 ""
감싸진 모든 표현을 뜻한다
number, boolean 도 ''
or ""
로 감싸면 문자열이다
let str = '';
let str2 = "0"
let str3 = "문자열";
let str4 = 'false';
console.log(typeof str); // 결과 : "string"
console.log(typeof str2); // 결과 : "string"
console.log(typeof str3); // 결과 : "string"
console.log(typeof str4); // 결과 : "string"
객체는 key와 value의 조합으로 이루어진 데이터 이다 ({}
로 묶인)
객체는 연관된 데이터들의 그룹으로 생각하면 된다
자바스크립트에서는 모든것이 객체이며 객체의 범주 안에서 세분화 된다고 볼 수 있다
함수도 객체, 배열도 객체이다
객체 인데 함수의 특성을 가지고, 객체인데 배열의 특성을 가진다라고 보면 된다
typeof
연산자를 사용하여 각 데이터의 타입을 확인할 수 있다
console.log(typeof null);
console.log(typeof undefined);
console.log(typeof 3);
console.log(typeof "화이팅");
console.log(typeof true);
console.log(typeof []);
console.log(typeof function() {});
console.log(typeof {});
결과
"object"
"undefined"
"number"
"string"
"boolean"
"object"
"function"
"object"