//js는 전처리 기간 동안 변수를 선언하지만 초기화 및 값 할당을 수행하지 않으므로 코드 블록 2의 변수는 정리되지 않은 반면 코드 1의 변수는 전혀 존재하지 않으므로 브라우저에서 오류를 보고합니다.
위의 용어를 이해하신 후에는 JS의 작동 메커니즘에 대해 대략적인 인상을 가지셨으리라 믿습니다. 이제 예를 살펴보겠습니다.
코드 복사
코드는 다음과 같습니다.
function Fn(){ //함수 1
Alert("함수 1이 실행되었습니다.");
}
위 코드를 실행할 때 브라우저에서 오류를 보고하는 이유는 무엇인가요? 선언된 함수는 전처리 기간 동안 처리되지 않나요? 왜 Fn() 함수를 찾을 수 없나요? 사실, 이는 JS 엔진이 코드 블록에 따라 순차적으로 실행된다고 말한 오해입니다. 실제로는 코드 블록에 따라 전처리되고 실행되어야 하며, 이는 실행된 코드만 함수를 선언한다는 의미입니다. 아직 로드되지 않은 변수, 코드 블록은 전처리할 수 없습니다. 이는 컴파일 시 처리의 핵심이기도 합니다.
HTML 문서 흐름의 실행 순서에 따라 페이지 요소가 렌더링되기 전에 실행해야 하는 js 코드는 <script> body>는 페이지 요소에 있어야 합니다. 로드된 js는 </body> 요소 뒤에 배치되고 body 태그의 onload 이벤트는 마지막에 실행됩니다. <br><br><br><br><br>코드 복사</div>
<br><br> 코드는 다음과 같습니다.<div class="codetitle">
<span><a style="CURSOR: pointer" data="50219" class="copybut" id="copybut50219" onclick="doCopy('code50219')"><script type="text/javascript "> <u> 경고("첫 번째");</u> 함수 Fn(){</a> 경고("세 번째");</span> }</div></script>