var x = 3;
(function(){
console.log('before', x);
var x = 7;
console.log('after', x);
return ;
})();
위 코드에서 var X는 전역으로 초기화됩니다. 그래서 함수 내에서 첫 번째 console.log는 "before 3"을 인쇄해야하지만 나는 그것을 얻지 못합니다. 그 이유는 전역 변수를 다시 선언하려고하기 때문입니다.전역 범위 변수로 인해 javascript 오류가 발생했습니다.
누군가가 왜 이런 일이 발생했는지 설명 할 수 있습니까?
질문에 대답하는 링크 : http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting FWIW, "hoisting"을보고 있습니다. –