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 |