関数は、呼び出されたときに実行されるイベント駆動型または再利用可能なコードのブロックです。
Jscript は 2 種類の関数をサポートしています。1 つは言語の内部関数 (eval() など)、もう 1 つは自分で作成した関数です。
JavaScript 関数内で宣言された変数 (var を使用) はローカル変数であるため、関数内でのみアクセスできます。 (この変数のスコープはローカルです)。
変数が宣言されている関数のみがその変数を認識するため、異なる関数で同じ名前のローカル変数を使用できます。
関数の呼び出し方法
1. 通常の呼び出し: functionName (実際のパラメータ...)
2. 関数を指す変数を介して呼び出します:
var myVar = 関数名;
myVar(実際のパラメータ...);
関数を返す関数
1.関数が明確な戻り値を持たない場合、戻り値は「未定義」になります。
2. 関数に戻り値がある場合、戻り値が何であっても返されます。
return ステートメントを使用すると、関数を呼び出した場所に戻すことができます。
return ステートメントを使用すると、関数は実行を停止し、指定された値を返します。
関数は通常、一意の値を返すため、この値は別の関数である可能性もあります:
ここでは、戻り値を変数に代入し、通常の関数のように呼び出します。
返された関数をすぐに実行したい場合は、box()() を使用してこのコードを実行することもできます。
すべての ECMAScript 関数のパラメーターは値によって渡されます。これは、パラメーターが参照によって渡されないことを意味します。
追記: 参照渡しがある場合、関数内の変数はグローバル変数となり、外部からアクセスすることもできます。
(1) 値の型: 数値、ブール値、null、未定義。
(2) 参照型: オブジェクト、配列、関数。
参照型値: ヒープ メモリに保存されているオブジェクトを指します。つまり、変数に保存されているものは実際には単なるポインタであり、オブジェクトはメモリ内の別の場所に保存されます。 🎜 >
匿名関数を作成します
自己実行による匿名関数の実行:
匿名関数の自己実行の戻り値を変数に代入します:
JavaScript は動的関数の作成をサポートしています。動的関数は Function オブジェクトを使用して定義する必要があります (Function は JavaScript のオブジェクトであり、固定です。Function オブジェクトの「F」は大文字にする必要があると規定されています)。 function、関数を定義するときに使用されるキーワードです: function funName(x, y)。これが Function の場合 (F が大文字の場合)、JavaScript のオブジェクトであることがわかります)
動的関数を作成するための基本的な形式: var 変数名 = new Function("パラメーター 1", "パラメーター 2", "パラメーター n", "実行ステートメント");
次のコード部分を見てください:
このコード:
var square = new Function ("x","y","var sum ; sum = x y;return sum;");
そして次のコード:
コールバック関数
コールバックは関数の呼び出しプロセスです。それでは、この呼び出しプロセスを理解することから始めましょう。関数 a には関数 b という 1 つのパラメータがあります。関数 a が実行されると、関数 b も実行されます。そして、このプロセスはコールバックと呼ばれます。
実際、中国語もわかりやすいです。コールバック、コールバックは、電話をかけ直すという意味です。関数 a を先に終了し、後で関数 b を呼び出します。
ここで明確にしなければならないことが 1 つあります。関数 b はパラメーターの形式で関数 a に渡され、関数 b はコールバック関数と呼ばれます。
jquery のエフェクト関数のほとんどにはコールバック関数が含まれます。 jqueryエフェクト関数
例:
ここでのコールバック関数は、次の例に置き換えることができます:
コールバックとは、実際には、関数が実行された後、現在実行されている関数がいわゆるコールバック関数であることを意味します。どうでしょうか?わかりやすいですね…
メソッドと関数の違い
実際、メソッドは関数ですが、メソッドはそれが属するオブジェクトです。
ご存知のとおり、関数をクリック イベントにバインドする
構文:
$(セレクター).click(関数)
パラメータの説明
関数はオプションです。クリックイベントが発生したときに実行する関数を指定します。
この形式は jQuery でよく見られます。 function をメソッドのパラメータとして使用し、メソッドにイベント処理関数を追加します。
js グローバル関数
グローバル関数は、組み込みオブジェクトのプロパティやメソッドと同じ概念ではありません。グローバル関数は、どの組み込みオブジェクトにも属しません。
JavaScript には次の 7 つのグローバル関数が含まれており、これらはいくつかの一般的な関数を完了するために使用されます:
escape( )、eval( )、isFinite( )、isNaN( )、parseFloat( )、
parseInt( )、unescape( )。
関数のいくつかの関数
クラスコンストラクターとして使用されます
いわゆるコンストラクター関数は、この関数を通じて新しいオブジェクトを生成することです。
オブジェクトは、Object()、Date()、Function() などの定義済みコンストラクターと組み合わせて new 演算子を使用して作成および初期化できます。オブジェクト指向プログラミングの強力な機能は、スクリプトで使用するカスタム オブジェクトを作成するカスタム コンストラクターを定義できることです。定義されたプロパティを持つオブジェクトを作成できるようにカスタム コンストラクターを作成しました。以下はカスタム関数の例です (this キーワードの使用に注意してください)。
Circle コンストラクターを呼び出すときは、円の中心点と半径の値を指定します (一意の円オブジェクトを完全に定義するには、これらすべての要素が必要です)。結局のところ、Circle オブジェクトには 3 つのプロパティが含まれています。 Circle オブジェクトをインスタンス化する方法は次のとおりです。
var aCircle = 新しいCircle(5, 11, 99);
コンストラクター関数を使用する利点は、オブジェクトの作成時にいくつかのパラメーターを受け取ることができることです。
obj.whoAreYou();//「私は trigkit4 でコーダーです」
Obj2.whoAreYou();//「私は学生でコーダーです」
次の 2 つの形式の関数定義は同等です。
変数テストはここで明確に定義されており、その初期値は関数エンティティに割り当てられます
次の定義された関数形式を見てください:
関数 test(){
alert("こんにちは");
};
test();//Hello
は正常に出力されます
明らかに、最初の機能は機能しませんでした。奇妙ですよね。 JavaScript 解析エンジンはコードを 1 行ずつ実行するのではなく、コードをセクションごとに実行することがわかっています。同じプログラムの解析と実行では、定義された関数ステートメントが最初に実行されるため、最初の定義のコード ロジックは 2 番目の定義によって上書きされ、同じ関数が 2 回呼び出された場合、2 番目の関数のみが実行されます。実行されました。
値としての関数
関数は js の構文であるだけでなく、値でもあります。つまり、関数を変数に代入したり、オブジェクトのプロパティまたは配列の要素に保存したり、パラメーターとして別の関数に渡すことができます。
関数の名前は実際には目に見えません。関数オブジェクト
関数を変数に割り当てるだけでなく、関数をオブジェクトの属性として呼び出すこともできます。その関数はメソッドと呼ばれます。
プロトタイプ属性
各関数には、オブジェクトへの参照を指すプロトタイプ属性が含まれています。このオブジェクトはプロトタイプ オブジェクトと呼ばれます。
詳しくは、JavaScript学習記(5) プロトタイプとプロトタイプチェーン
高階関数
ここでいう高階関数とは、高等数学の高階関数ではありません。いわゆる高階関数とは、1 つ以上の関数をパラメータとして受け取り、新しい関数を返す関数のことです。