var 키워드 변수 중복 선언 허용 같은 스코프 안에서 변수 중복 선언 가능 --> 먼저 선언된 값 변경되는 부작용 함수 레벨 스코프 함수가 아닌 다른 if, while과 같은 문에서 사용시 함수레벨 스코프만 지원하므로 전역 변수를 남발할 가능성이 높다. 변수 호이스팅 // var 키워드로 선언한 변수는 런타임 이전에 선언 단계와 초기화 단계가 실행된다. // 따라서 변수 선언문 이전에 변수를 참조할 수 있다. console.log(foo); // undefined var foo; console.log(foo); // undefined foo = 1; // 할당문에서 할당 단계가 실행된다. console.log(foo); // 1 가독성을 떨어뜨리고 오류를 발생시킬 여지를 줌 let 키워드 변수 중복 선..
변수의 생명 주기 지역 변수의 생명 주기 지역 변수의 생명주기는 함수의 생명주기와 일치 전역 변수의 생명 주기 var 키워드로 선언한 전역 변수의 생명주기는 전역 객체의 생명주기와 일치 클라이언트(브라우저)의 전역객체: window 서버사이드의 전역객체: global 전역 변수의 문제점 암묵적 결합 모든 코드가 전역 변수를 참조하고 변경할 수 있는 것 긴 생명 주기 메모리 리소스를 오랜 기간 소비하고 변수의 상태를 변경할 수 있는 기간과 기회가 많아짐 스코프 체인 상에서 종점에 존재 전역 변수의 검색 속도가 가장 느림 네임스페이스 오염 JS는 파일이 분리되었다 하더라도 하나의 전역스코프를 공유하여 동일한 이름의 전역 변수나 함수가 같은 스코프 내에 존재할 시 예상치 못한 결과를 일으킴 전역 변수의 사용을..