ホームページ > ウェブフロントエンド > jsチュートリアル > ブラウザごとにJavaScriptの解析と実行順序が異なる_JavaScriptスキル

ブラウザごとにJavaScriptの解析と実行順序が異なる_JavaScriptスキル

WBOY
リリース: 2016-05-16 16:55:24
オリジナル
1346 人が閲覧しました

はじめに

JavaScript はインタープリタ言語であり、その実行はトップダウンです。ただし、「トップダウン」についての理解はブラウザごとに若干異なり、プログラムが正しく動作するにはコードの上流と下流、つまりプログラム フローが重要です。そのため、jsの実行順序を深く理解する必要があります。この目的を達成するために、最も正確な結果が得られるように、次の 8 つの実験を計画しました。

実験

コードをコピー コードは次のとおりです。

< script type= "text/javascript">
//実験 1:
function t(a)
{
alert("[t(a)]a:" a); >}
関数 t(a, b)
{
alert("[t(a, b)]a:" a ", b:" b); (1) ;
//結果:
//[t(a, b)]a:1, b:unknown

//実験 2:
関数 t(a, b)
{
alert("[t(a, b)]a:" a ", b:" b);
}
関数 t(a)
{
alert( "[t(a)]a:" a);
}
t(1); //結果:
//[t(a)]a:1

//実験 3:
function t(a)
{
alert("[t(a)]a:" a);
function t( a, b )
{
alert("[t(a, b)]a:" a ", b:" b);
t(1, 2); >// 結果:
//[t(a, b)]a:1, b:2

//実験 4:
function t(a, b)
{
alert("[t(a, b)]a:" a ", b:" b);
}
関数 t(a)
{
alert("[t (a) ]a:" a);
}
t(1, 2);
//結果:
//[t(a)]a:1

// 実験 5
function t(a)
{
alert("[t(a)]a:" a);
t(1); function t( a, b)
{
alert("[t(a, b)]a:" a ", b:" b);
}
//結果:
// [t(a, b)]a:1, b:unknown

//実験 6
function t(a)
{
alert("[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
function t(a, b)
{
alert("[t(a, b)]a:" a ", b:" b);
t(1 );
関数 t(a)
{
alert("[t(a)]a:" a);
}
//結果:
/ /[t (a)]a:1

//実験 8
function t(a, b)
{
alert("[t(a, b)]a: " a " , b:" b);
}
t(1, 2);
function t(a)
{
alert("[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 つの実験はそれぞれ独立して実行してください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート