関数を定義するとき、次の 2 つの方法の違いは何ですか。
関数 t1() {}
var t2 = 関数() {}
t1 は関数自体で、t2 は関数への参照ですか?
最初のものは、これを行うことと同等の function ステートメントを使用しています。
var t1 = function t1() {};
これはt2の例と非常によく似ていますが、1 つの違いはt2に名前が付けられていないことです。これは、 t2変数に格納される無名関数です。
名前付き関数ステートメント( t1など)を使用する場合、var 宣言はスコープの先頭に引き上げられることに注意してください。関数が定義される前に関数を呼び出しているように見えても、この例
が機能するのは
そのためです。関数はsayHello変数の上に持ち上げられるため、使用できます。
反対側はこの例で、「foo」関数が一番上に上げられないため、 t2の例が機能しないことを示しています。