var let const....
이 글은 예전에 따로 적어두었던 var let const.... 메모를 옮기면서 다시 정리한 버전입니다..
원문이 짧은 편이라, 나중에 다시 볼 때 덜 끊기게 핵심 흐름만 조금 붙여뒀습니다.
var let const는 무슨 차이임? -> 기존의 var의 단점을 보완해서 나온것이 let, const임
var의 단점이 뭐가 있길래 새로나온거임? -> 중복선언도 가능했고 선언을 생략할수도 있음, 변수 호이스팅이나 함수레벨 스코프, 긴 생명주기 스코프 체인상 종점에 존재, 네임스페이스 오염 등등이 있음
그런것들이 왜 단점임? -> 우선 중복선언은 같은 이름의 변수를 허용하는건데 코드가 길어지다보면 내가 사용한 변수가 값이 다를 수 있음 선언을 생략하게되면 전역에 메모리를 차지하게됨, JS의 호이스팅때문에 에러가 나지않고 undefined로 나옴 블록레벨이 아닌 함수레벨 스코프라서 참조 에러가 날수도 있음
let const가 어떻게 저런 단점을 해결한거임? -> 블록레벨 스코프, 중복 선언 금지, 호이스팅이 동작하지 않는것처럼 작동함 일시적 사각지대라고 부름
let이랑 const의 차이는 뭐임? -> let은 재할당 가능 const는 재할당도 안됨 근데 객체 내부값은 변경가능함 재할당이랑은 다른거임