테스트 사이트 - 개발 중인 베타 버전입니다

$(document).ready(function(){}); 안에 변수 선언시 관련 문의 채택완료

amkorjquery 8년 전 조회 7,661

경우1 :

</p><p><script></p><p style="margin-left: 40px;">var isEraser = false;</p><p></scirpt></p><p>


 

이상태에서 크롬 개발자 도구 통해 isEraser 확인 해보면 false로 당연히 출력 되는데요

경우 2 :

[code]

[/cdoe]


이렇게 하면 "not defined" 이렇게 나옵니다.

우연히 이렇게 출력 해보니 이 둘의 차이점을 발견하게 되었습니다.

이 차이점을 자세히 알면 기초에 도움이 될까봐 

이렇게 문의 드립니다.

왜 이런 차이가 발생하는건가요?

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
8년 전
scope 차이 입니다.



ready 에서의 선언된 변수의 scope 는 ready 이며

디버그콘솔 에서 확인하는 scope 는 전역입니다.



위와 같은 형태로 되어있을 경우

전역 scope 에서 내부 scope 를 참조할 방법은 없고,

내부 scope(ready) 에서 var 키워드 없이 변수를 선언하면 됩니다.



JavaScript 에서 var 키워드 없이 선언된 변수는 전역 scope. 전역변수가 됩니다.
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

8년 전

$(document).ready(function(){

var isEraser = false;

});

alert(isEraser); //이렇게 해보면 알겠죠 당연히 undefined

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인