기본형
number, string, boolean, null, undefined, symbol(ES2020), bigint(ES2020)
참조형
object
코드내 유일한 값을 가진 변수 이름을 만들 때 사용
const user = symbol();
심볼 값을 만들어 낼 수도 있다.
const user = symbol('Hello World');
심볼 값을 가진 변수는 어떠한 값과 비교해도 false를 가지게 되고
const symbolA = Symbol('Hello World');
const symbolB = Symbol('Hello World');
console.log(symbolA === symbolB); // false
똑같은 내용이라도 변수가 다르면 false가 나타난다.
자바스크립트 내 아주 큰 정수를 표현하기 위해 등장
자바스크립트 내에서는 최대 253 - 1 (9000조), 최소 -(253-1) 사이에서 안정적으로 작동하고 이 범위를 초과하면 연산에 미세한 오류가 발생한다.
이 오류를 잡기위해 나온 것이 BigInt 타입이다.
사용법
console.log(9122164854753169n) // 정수 마지막에 숫자 n을 붙인다.
console.log(BigInt(9122164854753169n)) // bigint 함수 사용
소수 표현에서는 사용이 불가능
소수 형태에서 사용한다면 소수점 이하는 버려지고 정수만 사용됨
bigint 타입끼리만 연산이 가능하며 다른 타입의 연산은 타입 변환을 해야함
3n * 2; // TypeError
3n * 2n; // 6n
Number(3n) * 2; // 6
사용하는 값의 형태가 어떤 데이터 타입인자 확인하는 연산자
typeof 뒤에 띄어쓰기를 주어도 되고 괄호를 쳐도 된다.
typeof 'lecture'; // string
typeof Symbol(); // symbol
typeof {}; // object
typeof []; // object
typeof true; // boolean
typeof(false); // boolean
typeof(123); // number
typeof(NaN); // number
typeof(456n); // bigint
typeof(undefined); // undefined
typeof null은 문자열 object가 리턴
typeof 함수() 를 사용하면 function이 리턴
function hello() {
console.log("hi")
}
typeof hello; // function
falsy값 ( false로 평가되는 값) : false, null, undefined, NaN, 0 , ''
truthy 값 (truthy값) : false 값을 제외한 모든 값, [], {} 값(빈 배열과 빈 객체),