왜 var는 미움을 받았을까? 우리 동년배 개발자들은 var를 사용하여 개발하세요. 라는 것을 이야기를 많이 들었을 것이다. 그 당시에는 var라는 키워드 자체가 없었던 시절이 있었다. 당시에는 window에 모든 데이터를 제공을 하게 되는 방식이었습니다. 그러다 보니 메모리관리도 안되었으며, 문제가 많이 발생하였었다. var라는 키워드는 window를 더이상 더럽히지 않아도 되었다. 하지만, let, const가 추가적으로 키워드가 생기게 되었다. 하지만, 이는 var 키워드와 스코프가 다른 스코프를 생성하게 되는데, 과연 이게 맞는가? 굳이 함수스코프를 갖는 변수를 선언 할 것이가? 반대로, 블록스코프에서만 사용할 수 있는 let, const를 사용할 것인가? 자 일단 나의 입장에서 const 키워드는 명백한 실수로 보인다. const의 가장 큰 문제는 레퍼런스만 변경이 막혀 있고, immutable을 보장하지는 않는다는 것이다. 자 그러면 var, let만 보도록 하자. var의 경우애는 여러번 중복 선언을 할 수 있고, let의 경우 다른 스코프에서만 중복선언이 가능하다. 자 그러면 왜 쓰지 말라고 하는가? 개발자들은 넓은 범위 보다 항삭 좁은 범위를 사용하길 원한다. 실예로, Bool, Short, Int, Word, Long를 보면, 실제로, Bool, Short, Word, Int의 경우, 32bit PC의 경우, 4byte, 64bitPC의 경우, 8Byte를 사용하게 된다. 그렇다면 이는 메모리를 최적화를 위한 데이터가 아니다. 다 사람을 위한 것이다. 우리는 왜 Long대신, Bool을 선택 했는가? 다른 개발자가 이해하기가 더 쉽고 범위가 좁은 데이터 타입이기 때문이다. 요즘에 var 키워드의 사용법에 대해..... 아래의 코드처럼 사용할 수 있음을 이야기하고 있다. var foo = 1 // ...아주 긴 코드... var foo // 상기 시키기 위한 코드 자 그러면 저 아주 긴 코드를 지나서 foo가 1로 초기화 되