私が従う Javascript のチュートリアルでは常に使用前に定義していますが、私の PHP の本では常に最後に定義しており、実際、これは良い習慣と見なされていることを指摘しています。
いずれかの方法でそれを行う理由はありますか?
私が従う Javascript のチュートリアルでは常に使用前に定義していますが、私の PHP の本では常に最後に定義しており、実際、これは良い習慣と見なされていることを指摘しています。
いずれかの方法でそれを行う理由はありますか?
インライン コードを実行する場合 (たとえば、ロード時に実行する場合)、グローバル変数は、それらを使用するコードの前に定義する必要があります。
関数は、コードが最も整然として読みやすいと思われる順序で定義できます。
たとえば、次のコードで:
foo();
function foo() {
alert(x);
}
var x = 4;
が呼び出されたときに x にはまだ値がないため、への呼び出しfoo()
は警告を発しますが、すべての関数は実際にコードが実行される前にロードされるため、関数定義の前に現れるコードで を呼び出すことができることに気付くでしょう。undefined
foo()
foo
ベスト プラクティスとしては、関連する機能のモジュールをまとめた最適な方法でコードを整理することが理にかなっていると思いますが、その順序は一般的に重要ではありません。JavaScript には、実際にはクラスであるものが何もないことに気付いていると思います。関数オブジェクトとプロトタイプを使用して、他の言語が持つクラスのような動作をシミュレートできますが、オブジェクトはクラスではなくプロトタイプに基づいているため、実際にはクラスがありません。
Javascript では、クロージャー内のすべてのものを宣言するのが一般的な方法であり、オブジェクトまたは関数である可能性があるため、グローバル スコープを汚染しません。変数を定義するときは、多くの場合、スコープが設定されている関数の先頭で変数を宣言することをお勧めします。
Javascript にはクラスがありませんが、オブジェクト リテラルまたはコンストラクター関数の定義は、関数宣言が関数式と同じではないことに留意する限り、どこでも実行できます。
function foo () { ... } // Declaration, works anywhere
var foo = function () { ... } // Expression, works only after the assignment
詳細はこちらhttp://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/
In Javascript, a function must be defined before to use it. So the function definition must precede the code using the function.
Some recommendations for enhancing page speed tell us to put the Javascript execution at the end of the HTML page. Doing so, the Javascript will start when the page and all elements are quite fully loaded. (see article here)
Nevertheless, the remaining usage for Javascript is to place the function declaration in the <header>
section, so that the defined functions are immediately operational in any element of the body, including the <body>
element itself. You can always place the bootstraps or other function execution at the end of the HTML page.
For PHP it is different.
In a PHP script, you can define the function anywhere in the code, even after the code that is using the functions. That is possible because PHP has to read the full script before the run the very first line of code.
Furthermore, for readability of the code, the remaining usage for PHP is to start with the algorithm, and to place the function definitions at the end of the script (or more often, to place the functions a a separated script).