[자바스크립트/javascript] 데이터타입, data types, hoisting

https://www.youtube.com/watch?v=OCCpGh4ujb8&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=3 

드림코딩님 강의보면서 공부!!

이미 아는 내용들은 건너뛰고 모르는 내용만 정리

 

 

호이스팅

호이스팅이란 어디에 선언했냐에 상관없이 항상 제일 위로 선언을 끌어올려주는 것을 말한다.

 

 

infinity / -infiniti / NaN 

const infinity = 1 / 0;
const negativeInfinity = -1 / 0;
const nAn = 'not a number' / 2;

console.log(infinity); // infinity
console.log(negativeInfinity); // -infinity
console.log(nAn) //NaN
const infinity = 1 / 0;

1을 0으로 나누면 infinity값이 반환된다

 

const negativeInfinity = -1 / 0;

-1을 0으로 나누면 -infiniti값이 반환된다

 

const nAn = 'not a number' / 2;

문자를 숫자값으로 나누면 NaN (Not a Number)값이 반환된다

 

 

bigInt

자바스크립트에서는 (-2**53) ~ 2*53 의 범위만 표현이 가능한데

최근에는 bigInt라는 타입이 추가되어서 숫자의 마지막에 n만 붙이면 bigInt로 간주되어진다(크롬과 파이어폭스에서만 지원)

const bigInt = 1234567890123456789012345678901234567890n;
console.log(typeof(bigInt))

콘솔에 타입이 bigInt라고 출력되는 것을 볼 수 있다.

 

 

symbol

const symbol1 = symbol('id');
const symbol2 = symbol('id');
console.log(symbol1 === symbol2); //false

symbol은 동일한 문자열(string)을 작성했어도 다른 symbol로 만들어지기 때문에 주어지는 string에 상관없이 고유한 식별자를 만들 때 사용된다.

만약 string이 똑같다면 동일한 symbol을 만들어주고 싶을 때는 symbol.for()을 사용한다

심볼은 바로 출력하면 에러가 나기 때문에, symbol1.description 의 형식으로, 뒤에 .description을 붙여줘야 한다.

comment