導入
JavaScriptは解釈された言語であり、その実行はトップダウンです。ただし、各ブラウザは[トップダウン]の理解にわずかな違いがあり、コードの上流と下流、つまりプログラムフローは、プログラムの正しい操作に不可欠です。したがって、JSの実行順序を深く理解する必要があります。この目的のために、私は最も正確な結果を得るために次の8つの実験を設計しました。
実験
コードコピーは次のとおりです。
<script type = "text/javascript">
//実験1:
関数T(a)
{
アラート( "[t(a)] a:" + a);
}
関数T(A、B)
{
alert( "[t(a、b)] a:" + a + "、b:" + b);
}
t(1);
//結果:
// [t(a、b)] a:1、b:未定義
//実験2:
関数T(A、B)
{
alert( "[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)
{
alert( "[t(a、b)] a:" + a + "、b:" + b);
}
t(1、2);
//結果:
// [t(a、b)] a:1、b:2
//実験4:
関数T(A、B)
{
alert( "[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)
{
alert( "[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)
{
alert( "[t(a、b)] a:" + a + "、b:" + b);
}
//結果:
// [t(a、b)] a:1、b:2
//実験7
関数T(A、B)
{
alert( "[t(a、b)] a:" + a + "、b:" + b);
}
t(1);
関数T(a)
{
アラート( "[t(a)] a:" + a);
}
//結果:
// [t(a)] a:1
//実験8
関数T(A、B)
{
alert( "[t(a、b)] a:" + a + "、b:" + b);
}
t(1、2);
関数T(a)
{
アラート( "[t(a)] a:" + a);
}
//結果:
// [t(a)] a:1
</script>
ポストスクリプト
JavaScript関数を定義する場合、関数名は関数オブジェクトの識別子であり、パラメーターの数は関数の属性のみです。異なる数のパラメーターで関数を定義することで過負荷を実装することはできません。
関数を呼び出すと、JSは関数名を介して対応する関数オブジェクトを見つけ、関数定義と式パラメーターリストのパラメーターを順番に一致させ、不十分なパラメーターを未定義として処理します。関数コードが実行されます。
したがって、関数を定義する場合、必要なパラメーターは通常、パラメーターリストの前面に配置され、オプションのパラメーターは必要なパラメーターの後に配置されます。
注意すべきこと
1.上記の8つの実験の結果は、360ブラウザー(バージョン/カーネル:6.3.1.142/21.0.1180.89)およびFirefoxブラウザー(バージョン:27.0.1)を介して実行することで得られました。
2。上記の8つの実験は、互いに独立しています。