myname = "global";
function func() {
	alert(myname);
	var myname = "local";
	alert(myname);
}
func();


의도된 결과는




였을 것이다.


하지만. 자바스크립트에는 hoisting이라는 성질이 있다.


myname = "global";
function func() {
var myname;            // undefined
alert(myname);
myname = "local";
alert(myname);
}
func();



myname 라는 변수의 선언이 scope의 맨 위로 올려져 undefined 값으로 설정된다.


따라서 결과는







'WEB > javascript' 카테고리의 다른 글

자바스크립트 리터럴 표기법  (0) 2012.07.22
eval() 안전하게 사용하는 방법  (0) 2012.07.22
자바스크립트 전역변수  (0) 2012.07.10
strict mode  (0) 2012.07.10
객체지향 언어  (0) 2012.07.09

+ Recent posts