소개
JavaScript는 해석 된 언어이며 그 실행은 하향식입니다. 그러나 각 브라우저는 [하향식]에 대한 이해에 약간의 차이가 있으며, 코드의 상류 및 하류, 즉 프로그램 흐름은 프로그램의 올바른 작동에 중요합니다. 따라서 JS의 실행 순서를 깊이 이해해야합니다. 이를 위해 가장 정확한 결과를 얻기 위해 다음 8 가지 실험을 설계했습니다.
실험
코드 사본은 다음과 같습니다.
<script type = "text/javaScript">
// 실험 1 :
기능 t (a)
{{
경고 ( "[t (a)] a :" + a);
}
기능 t (a, b)
{{
경고 ( "[t (a, b)] a :" + a + ", b :" + b);
}
t (1);
//결과:
// [t (a, b)] a : 1, b : 정의되지 않은
// 실험 2 :
기능 t (a, b)
{{
경고 ( "[t (a, b)] a :" + a + ", b :" + b);
}
기능 t (a)
{{
경고 ( "[t (a)] a :" + a);
}
t (1);
//결과:
// [t (a)] a : 1
// 실험 3 :
기능 t (a)
{{
경고 ( "[t (a)] a :" + a);
}
기능 t (a, b)
{{
경고 ( "[t (a, b)] a :" + a + ", b :" + b);
}
t (1, 2);
//결과:
// [t (a, b)] a : 1, b : 2
// 실험 4 :
기능 t (a, b)
{{
경고 ( "[t (a, b)] a :" + a + ", b :" + b);
}
기능 t (a)
{{
경고 ( "[t (a)] a :" + a);
}
t (1, 2);
//결과:
// [t (a)] a : 1
// 실험 5
기능 t (a)
{{
경고 ( "[t (a)] a :" + a);
}
t (1);
기능 t (a, b)
{{
경고 ( "[t (a, b)] a :" + a + ", b :" + b);
}
//결과:
// [t (a, b)] a : 1, b : 정의되지 않은
// 실험 6
기능 t (a)
{{
경고 ( "[t (a)] a :" + a);
}
t (1, 2);
기능 t (a, b)
{{
경고 ( "[t (a, b)] a :" + a + ", b :" + b);
}
//결과:
// [t (a, b)] a : 1, b : 2
// 실험 7
기능 t (a, b)
{{
경고 ( "[t (a, b)] a :" + a + ", b :" + b);
}
t (1);
기능 t (a)
{{
경고 ( "[t (a)] a :" + a);
}
//결과:
// [t (a)] a : 1
// 실험 8
기능 t (a, b)
{{
경고 ( "[t (a, b)] a :" + a + ", b :" + b);
}
t (1, 2);
기능 t (a)
{{
경고 ( "[t (a)] a :" + a);
}
//결과:
// [t (a)] a : 1
</스크립트>
추신
JavaScript 함수를 정의 할 때 함수 이름은 함수 객체의 식별자이며 매개 변수 수는 함수의 속성 일뿐입니다. 다른 수의 매개 변수로 함수를 정의하여 과부하를 구현할 수 없습니다.
함수를 호출 할 때 JS는 함수 이름을 통해 해당 함수 객체를 찾은 다음 함수 정의의 매개 변수와 표현식 매개 변수 목록을 순서대로 일치시키고 불충분 한 매개 변수가 정의되지 않은 것으로 처리됩니다. 함수 코드가 실행됩니다.
따라서 함수를 정의 할 때 필요한 매개 변수는 일반적으로 매개 변수 목록의 전면에 배치되며 옵션 매개 변수는 필요한 매개 변수 뒤에 배치됩니다.
주목해야 할 것
1. 상기 8 개의 실험 결과는 360 브라우저 (버전/커널 : 6.3.1.142/21.0.1180.89) 및 Firefox 브라우저 (버전 : 27.0.1)를 통해 실행하여 얻었습니다.
2. 위의 8 가지 실험은 서로 독립적입니다.