메뉴 건너뛰기

조회 수 166 댓글 2

-문제

6장 그림 6-2번에서 스크립트 태그를 헤드로 옮기면 원하는 결과가 나오지 않습니다. 거기서 var ret=document.getElementById("result")만 바디에 따로 스크립트를 만들어서 넣으면 오류가 원하는 결과가 나오는데요.

-질문

1. 왜 스크립트태그를 전부 헤드로 올리면 원하는 결과값이 나오지 않는건가요?

2. 혹시 바디태그에 result아이디가 만들어지기전이라서 그런거라면 var ret=document.getElementById("result")만 따로 바디로 내렸을땐 왜 결과가 제대로 나오는건가요? promptEX()에서 result.innerHTML에서 문제가 발생해야 하는것 아닌가요?

?
  • ?
    관리자 2018.10.19 15:01

    궁금한 것에 적극적인 질문을 주신 것 환영합니다.

    프로그램이 실행되는과정과 전역변수를 이해하면 현재 상황을 이해할 수있을것 같군요.
    우선 브라우저는 HTML 문서를 위에서 부터 하나씩 실행한다는 사실을 염두에 두고 아래 글을 읽어 보세요.

    1. var result=document.getElementById("result") 문장이
    <div id="result"></div> 보다 앞에 있게 되면 id 속성이 "result"인 태그를 발견할 수 없어서 오류가 나는 겁니다.

    2. 다음은 자바스크립트 함수의 선언입니다.
    function promptEX() {
    ...
    }
    선언된 함수는 웹페이지가 사라질 때까지 그 생명을 가지고 있고, 어디서든지 호출될 수 있습니다.

    3. var result=document.getElementById("result") 문장을 <div id="result"></div> 보다 아래에 두면
    브라우저는 id 속성이 "result"인 태그를 발견하는데 문제가 없지요.
    그리고 var result=document.getElementById("result") 문장이 실행되면 result 라는 전역변수가 생기고 이 변수는 <div id="result"></div>에 의해 형성되는 객체(8장에서 설명할 DOM 객체)를 가리키고 있습니다.
    전역변수는 웹 페이지가 사라질 때까지 존재하는 변수입니다.
    그리고 나서 사용자가 웹 페이지에 버튼을 누를 때 promptEX() 함수가 호출되고,
    이 함수에 전역변수 result 를 접근하는데는 문제가 없지요. 또한 전역변수 result 는 여전히 <div id="result"></div>에 의해 형성되는 객체를 가리키고 있습니다.

    이상입니다.

  • ?
    글쓴이 2018.10.19 18:38
    감사합니다 ㅎㅎ

QnA

공부하면서 궁금했던 것을 질문해보세요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 읽어주세요! 연습문제 및 실습문제 정답 공개에 관한 공지입니다. file 관리자 2017.06.20 18280
163 570page 예제 13-7 1 이주원! 2019.09.03 167
162 예제 5-11을 하다 사소한 궁금한 것이 생겼습니다 1 수소방울 2017.10.13 167
» 6장 그림 2번 질문있습니다! 2 1592012 2018.10.19 166
160 인코딩, 앵커 1 간구 2017.03.27 160
159 10장 연습문제 10번 질문입니다. 2 웹린 2022.11.03 159
158 6장 9-2번 이론문제(개정판) 1 file 궁금해요 2022.09.10 159
157 각 장의 연습문제에 쓰인 사진파일좀 올려주실수있나요? 1 익명 2018.09.29 159
156 예제 3-4 1 새싹 2018.04.22 158
155 2-21 예제 3 file Iwanteating 2021.03.25 157
154 챕터2 연습문제 8번 김석현 2018.04.22 156
153 Page 396 script 위치 관련 질문 드립니다 2 질문드립니다 2020.11.05 154
152 11장 실습문제 7번 응용 ㅇㅇ 2020.06.16 154
151 432PAGE 9장 실습문제 9번 재질문올립니다. 2 asdfSDF 2019.08.23 154
150 인라인 프레임 많이 사용하나요? 1 html 2018.06.02 153
149 연습문제 3장 2번 질문합니다! 1 file KHE 2022.09.08 152
148 선생님 재질문 드립니다. 1 file 입문한 사람 2020.06.12 150
147 실습문제 9-6번 문제중에 5% 증가는 어떻게 해야하나요? 2 muuum 2018.10.24 150
146 2장 오픈챌린 cmc 2023.09.17 148
145 몽구스 웹서버가 작동 안됩니다. 바울 2021.07.22 148
144 13-5 하고 13-6 error 1 WebWeb 2020.12.09 148
목록
Board Pagination Prev 1 ... 8 9 10 11 12 13 14 15 16 17 ... 21 Next
/ 21
위로