" == " 는 값이 같은지를 비교하는 연산자. 그러나 ==는 비교하려는 두 값이 서로 다른 데이터 유형이라도 JavaScript 엔진이 자동으로 형 변환을 수행해 값을 비교한다.
반면, " === "는 값과 데이터 유형 모두가 정확히 일치하는지를 비교. 만약 값이 같지만 데이터 유형이 다른 경우에 " === " 는 false 를 반환한다.
ex. 1 == '1' 은 true, 1 === '1'은 false
let, const, var 는 모두 변수 선언 방식
재할당, 재선언이 가능한가 ? 하는 지점에서 셋의 차이가 생긴다.
간단하게 보면
var => 재할당, 재선언 모두 가능 // 이에 더해 가장 오래된 변수 선언 키워드로 요즘에는 쓰이지 않는 편이다. 또한 함수 스코프로 변수가 선언된 함수 내에서만 접근할 수 있다. 또한 코드 블록 내에서 변수를 선언하기도 전에 사용가능한 호이스팅이 발생한다.
let => 재할당은 가능하나 재선언은 불가능 // 블록 스코프로 변수가 선언된 블록 내에서만 접근할 수 있으며 호이스팅이 발생하지 않는다.
const => 재할당, 재선언 모두 불가능 (상수) // 선언할 때 값을 할당해야 하며 나중에 할당하면 오류가 발생한다. 또한 let 과 마찬가지로 호이스팅이 발생하지 않는다.
사용할 변수가 상수인 경우 const 를 사용하고 값이 바뀔 수 있을 때는 let 을 사용한다.
null과 undefined는 모두 javascript 데이터 유형 중 특별한 값을 나타내는 예약어로
공통점
차이점