$(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. 전역변수가 됩니다.
답변을 작성하시기 전에 로그인 해주세요.
전체 1,020
QA 내용 검색

회원로그인

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