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

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

QA

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

본문

경우1 :


<script>
var isEraser = false;
</scirpt>


e27bfe3f875b0f3b32ffabfa89603fa2_1502961543_731.JPG
 

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


경우 2 :

[code]

<script>

$(document).ready(function(){

var isEraser = false;

});

</script>

[/cdoe]

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


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


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


이렇게 문의 드립니다.


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

이 질문에 댓글 쓰기 :

답변 2

scope 차이 입니다.

ready 에서의 선언된 변수의 scope 는 ready 이며
디버그콘솔 에서 확인하는 scope 는 전역입니다.

위와 같은 형태로 되어있을 경우
전역 scope 에서 내부 scope 를 참조할 방법은 없고,
내부 scope(ready) 에서 var 키워드 없이 변수를 선언하면 됩니다.

JavaScript 에서 var 키워드 없이 선언된 변수는 전역 scope. 전역변수가 됩니다.
답변을 작성하시기 전에 로그인 해주세요.
전체 125,873 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT