var는 자바 스크립트에서 가장 오래된 변수 선언 키워드이다.1.함수 레벨 스코프
var로 선언된 변수는 선언된 함수 내에서만 유효하며, 함수 외부에서는 접근할 수 없다.function)가 아닌 블록(ex. if문, for문 등)내에서 선언된 경우에는 블록 밖에서도 접근할 수 있다.2.호이스팅
var로 선언된 변수는 선언 전에 사용할 수 있다. 즉, JS가 var변수를 코드의 최상단으로 끌어올린다는 것이다.
호이스팅이 동작되는 현상으로 인하여 예상치 못한 오류를 발생시킬 수 있으므로 개발시 추천하지 않는 키워드이다.
<예시>
let은 더 엄격하고 현대적인 변수 선언 방식이다.1.블록 레벨 스코프
let으로 선언된 변수는 블록(함수, if문, for문, while문 등)내에서만 유효하다.2.호이스팅 방지
let으로 선언된 변수는 선언 전에 접근할 수없다.const는 한 번 할당하면 변경할 수 없는 값을 선언할때 사용한다.1.블록 레벨 스코프
let과 동일하게 선언된 블록 내에서만 유효하다.2.호이스팅 방지
const로 선언된 변수는 선언 전에 접근할 수 없다.3.재할당 불가능
한 번 할당된 값은 변경할 수 없다.
JS 타입에는 기본 자료형(원시형)과 객체 자료형(참조형)으로 구분이 된다.
1.Number
정수 및 부동 소수점 숫자
숫자형과 관련된 대표적인 연산은 사칙연산(+, -, * , /)이다.
숫자형엔 일반적인 숫자 외에 Infinity, -Infinity, Nan같은 '특수 숫자 값'이 포함된다.
NaN: 계산 중에 에러가 발생했다는 것을 나타내주는 값
부정확하거나 정의되지 않은 수학 연산을 사용하면 계산 중에 에러가 발생하면 NaN이 반환된다.

2.BigInt
Number의 안전 한계를 넘어서는 큰 정수도 안전하게 저장하고 연산할 수 있다. -> 길이에 상관없이 정수를 나타내는게 가능하다.
BigInt형 값은 정수 리터럴 끝에 n을 붙이면 된다.

3.String
문자형은 따옴표("")로 묶는데, 3가지 종류가 있다.
역따옴표(백팅,그레이브)로 변수나 표현식을 감싼 후 ${...}안에 넣어주면, 원하는 변수나 표현식을 문자열 중간에 손쉽게 넣을 수 있다.
따옴표나 작은따옴표를 사용하면 중간에 표현식을 넣을 수 없다.

4.Boolean
true/false
값이 없거나 0, -0, null, false, undefined, 빈 문자열("")이라면 객체의 초기값은 false가 된다.
문자열"false"를 포함한 그 외 모든 다른 값은 초기값을 true로 설정한다.
비교 결과를 저장할 떄도 Boolean을 사용한다.

5.Null
6.Undefined
null은 의도적으로 비운 것이고, undefined는 컴퓨터가 부여하는 것!
7.Symbol

객체(Object)