자바스크립트의 자료형
-숫자 타입 ( Number ) : 숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재한다.
-문자열 타입 ( String ) : 문자열
-불리언 타입 ( boolean ) : 논리적 참 (true)과 거짓 (false)
-undefined 타입 : var 키워드로 선언된 변수에 암묵적으로 할당되는 값
-null 타입 : 값이 없다는 것을 명시할 때 사용하는 값
-심벌 타입 (symbol) : ES6에서 추가된 7번째 타입
-객체 타입 : 객체, 함수, 배열 등
불리언 타입이란 ?
불리언 타입은 논리적 참 혹은 거짓을 나타내는 true, false 이다.
let bool = true;
console.log(bool); // true
bool = false;
console.log(bool); // false
불리언 타입의 값은 조건문에서 주로 사용하는데 간단한 코드를 작성해보자
let bool = true;
function conditional(data){
if(data){
console.log(`data의 값은 참입니다 : ${data}`);
}else{
console.log(`data의 값은 거짓입니다 : ${data}`);
}
}
conditional(bool); //data의 값은 참입니다 : true
bool = false;
conditional(bool); //data의 값은 거짓입니다 : false
undefined 타입이란 ?
var 키워드로 선언한 변수는 암묵적으로 undefined로 자동 초기화된다.
변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이뤄지기 전에 자바스크립트 엔진이 undefined로 초기화한다.
선언과 초기화는 따로 글에서 다룰 예정이다
그럼 let과 const 키워드는 ?
우선 예시 코드를 살펴보자
var foo;
console.log(foo); // undefined
let foo1;
console.log(foo1); // undefined
const foo2; // SyntaxError: Missing initializer in const declaration
var과 let 키워드로 선언한 변수를 확인해보니 두 값 모두 undefined가 나왔다.
const는 선언 자체가 오류가 난다.
var과 let의 키워드는 undefined로 초기화되는 시점이 다른데 이 내용은 선언과 초기화를 다룰때 같이 다루겠다.
null 타입이란 ?
프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다.
즉, 변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 뜻이다.
다만
let foo = '집인데 집에 가고싶어요';
foo = null;
위 처럼 null을 선언해서 참조를 제거하기 보다는
변수의 스코프를 좁게 만들어서 변수 자체를 재빨리 소멸시키는게 더 좋다.
또한 함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 한다.
심벌 타입이란?
심벌은 ES6에서 추가된 7번째 타입으로, 변경 불가능한 원시 타입의 값이다.
심벌 값은 다른 값과 중복되지 않는 유일무이한 값이다.
주로 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.
// 심벌 값 생성
let key = Symbol('asd2468');
console.log(key); // Symbol(asd2468)
console.log(typeof key); // symbol
요약
1. undefined는 자바스크립트 엔진이 초기화 시켜주는 값
2. null은 더 이상 값을 참조하지 않겠다는 의미
*오타 혹은 오류 지적해주시면 감사하겠습니다 !!