2013-02-09 2 views
0

모두 안녕하세요!JS 같은 스크립트 발리 스에없는 JS

<script> 
    error(); 
    </script> 


<script> 
function error(){ 
alert('erreur'); 
} 
</script> 

"error"함수는 호출되지 않습니다. 나는 이것이 쓸모 없다는 것을 안다.하지만 그것이 왜 효과가 없는지 알고 싶다.

+1

함수가 정의되기 전에'error();'가 실행되기 때문에 추측됩니다. 브라우저의 오류 콘솔에 그 오류가 표시됩니다. Javascript에서 함수는 별도의 컴파일 단계가 아닌 정상적인 실행 흐름의 일부로 정의됩니다. – millimoose

+0

@millimoose 정확하게! 감사합니다 :) – user2057100

답변

1

첫 번째 <script>이 실행되면 error 함수가 아직 정의되지 않았습니다. 오류 콘솔에 예외가 표시되어야합니다.

일반적으로 JavaScript hoisting applies for function declarations에서이 기능은 스크립트 전체에서 작동하지 않습니다 (구문 용어 : 프로그램 텍스트를 통해). 스크립트를 다음과 같이 변경하면 작동하게됩니다.

+0

전체 _inline_''태그. – marekful

+0

@ MarcellFülöp : 외부 스크립트와 동일합니다. – Bergi

+0

수정하십시오. 하나의 외부 스크립트 또는 인라인'