자바스크립트에는 아래와 같은 데이터 타입이 있다
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"