> For the complete documentation index, see [llms.txt](https://sharryhong.gitbook.io/front-end/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sharryhong.gitbook.io/front-end/dev-better/clean-code/clean-code-javascript/variables.md).

# Variables - 변수 다루기

2022-01

### var를 지양하자 &#x20;

var는 함수 스코프 :

* 전역이 오염된다. &#x20;

let, const는 블록 스코프 :&#x20;

&#x20;\- TDZ(Temporal Dead Zone) 이라는 속성까지 가질 수 있다.&#x20;

* 안전하게 코드를 작성할 수 있다.&#x20;
* let 보다는 const 를 쓰자.&#x20;

### 임시변수 제거하기

임시변수를 사용하면 사이트 이펙트가 발생할 위험이 생긴다.&#x20;

또한 함수에 추가적인 스펙이 생길때 문제가 생길 수 있다.&#x20;

### 호이스팅 주의하기

호이스팅 : 런타임시에 바로 선언을 최상단으로 끌어올려지는 것

선언과 할당이 분리된 것. 런타임시(동작할때)에는 프로그램이 동작한다.

문제 : 코드 작성시 예측하지 못한 실행결과가 도출될 수 있다.

* var → let, const 사용
* 함수선언문보다 함수표현식 사용
