<script>
var elem = document.getElementById("myBody");
if(elem == null) alert("body is not made yet");
</script>
</head>
<body id="myBody">
부분에서 경고문이 출력되는데
getElementById로 "myBody"(본문에 body)에 대한 객체를 찾지만,
객체가 아직 생성되기 전이기 때문에
elem ==NULL 이되어서
경고가 출력되는 건가요 ?
그렇습니다. 잘하는군요.
브라우저가 HTML 파일을 읽어 DOM 객체를 만들어가는 과정에서 자바스크립트 코드가 실행됩니다.
그런데 아직 < body> 태그가 브라우저에 의해 읽혀지기 전이고 id 값이 myBody인 body 객체가 만들어지기 전이어서
getElementById()는 null을 리턴하게 됩니다.
이 문제를 낸 의도는 자바스크립트 코드의 위치와 실행 과정을 잘 알지 못하면 오류에 빠질 수 있음을 알려주려고 만든 것입니다.