$(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]
$(document).ready(function(){
var isEraser = false;
});
[/cdoe]
이렇게 하면 "not defined" 이렇게 나옵니다.
우연히 이렇게 출력 해보니 이 둘의 차이점을 발견하게 되었습니다.
이 차이점을 자세히 알면 기초에 도움이 될까봐
이렇게 문의 드립니다.
왜 이런 차이가 발생하는건가요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
8년 전
scope 차이 입니다.
ready 에서의 선언된 변수의 scope 는 ready 이며
디버그콘솔 에서 확인하는 scope 는 전역입니다.
위와 같은 형태로 되어있을 경우
전역 scope 에서 내부 scope 를 참조할 방법은 없고,
내부 scope(ready) 에서 var 키워드 없이 변수를 선언하면 됩니다.
JavaScript 에서 var 키워드 없이 선언된 변수는 전역 scope. 전역변수가 됩니다.
ready 에서의 선언된 변수의 scope 는 ready 이며
디버그콘솔 에서 확인하는 scope 는 전역입니다.
위와 같은 형태로 되어있을 경우
전역 scope 에서 내부 scope 를 참조할 방법은 없고,
내부 scope(ready) 에서 var 키워드 없이 변수를 선언하면 됩니다.
JavaScript 에서 var 키워드 없이 선언된 변수는 전역 scope. 전역변수가 됩니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인