자바스크립트를 공부하면서 가장 헷갈리고 있는 부분이 바로 'var' 키워드이다.
어디서는
 var 변수=값;
라고 선언하고, 어디서는
 변수=값;
이라고만 선언하는데, C언어적인 관점에서는 도무지 있을수 없는 녀석이라 혼돈을 더해주고만 있어서
검색을 해보지만 이렇다 할 레퍼런스를 찾지는 못했다.

간략하게만 정리하자면
1. var 를 붙이지 않으면 자동으로 "전역변수"로 선언되며
   var 를 붙이지 않은 변수는 window 오브젝트(혹은 컨텍스트?)에 선언된다.
2. javascript 는 dynamic scope 이기 때문에 함수에서 변수를 사용시에는
  함수가 어디에 선언되었냐 보다는, 어디에서 함수가 불려지냐는 "문맥(context)"가 중요해 진다고 한다.
3. 그리고 var로 선언한 변수는 delete 키워드로 메모리를 해제할수 없다.

아무튼 ECMA 표준을 보던가 해서 명확하게 좀 찾아볼 필요가 있어 보인다.


[링크 : https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference:Functions]
Posted by 구차니