자바스크립트 학습 노트 2 기능_기본지식
- WBOY원래의
- 2016-05-16 18:36:52970검색
function Hello() {
alert("Hello");
Hello()
var Hello = function() {
alert("Hello"); >}
Hello();
사실 다 똑같습니다.
그런데 기능을 수정하다 보면 아주 이상한 문제를 발견하게 됩니다.
Hello World가 연속으로 두 번 출력되는 것을 볼 수 있습니다. 우리가 상상했던 Hello, Hello World가 아닌.
Javascript는 완전히 순차적으로 해석되어 실행되지는 않지만, Javascript는 해석되기 전에 "사전 컴파일"되어 있기 때문입니다. 사전 컴파일 과정에서는 정의된 함수가 먼저 실행되고, var 변수가 먼저 실행됩니다. 프로그램의 실행 효율성을 높이기 위해 생성되었으며 기본값은 정의되지 않았습니다. 즉, 위의 코드 조각은 실제로 JS 엔진에 의해 다음 형식으로 사전 컴파일됩니다.
🎜>
통과할 수 있습니다. 위 코드는 함수도 데이터이면서 변수라는 것을 명확하게 보여줍니다. "함수"에 값을 할당(재할당)할 수도 있습니다. 물론 이러한 상황을 방지하기 위해 다음과 같이 할 수도 있습니다.