機能
あなたは、コードの機能パッケージの特定の部分を達成することができます。
注:作成するための機能の後、テキストの文字列に格納されているヒープに、何の効果もありませんが行われていない、それだけで文字列を救いました。
作成機能
関数F65(){ にconsole.log( `Iは関数F65`です); }
F66 = LETの関数(){ にconsole.log( `Iは関数F66`です); }
F66 = LETの関数F67(){ にconsole.log( `Iは関数F66`である); } F66(); // 私は、関数F66で はconsole.log(F66.name); // F67 はconsole.log(F66 ); // [機能:F67] // F67(); // エラーが定義されていないF67
//このような状況は少し素敵です
F68 =ましょう新しい機能( "はconsole.log(123)" );
注:メモリ・スタックF68:関数への参照。
ヒープメモリー機能: "はconsole.log(123)"、文字列です。
三つの要素の機能
まず、関数名
関数名は、一般的に、変数識別子として動詞またはアクションBinger式、ルックEENOWテキスト、および他を必要とし、また、変数名の名前です。
第二に、パラメータ
関数F65(A、B、C、... D){ にconsole.log(A、B、C)。// ABC にconsole.log(D); // [ 'D'、 'E'、 'F'、 'G'、 'H'] にconsole.log(F65.length)。// 3 にconsole.log(F65.arguments)。// 键值对的实参 はconsole.log(F65.arguments [0])。// A } F65( "A"、 "B"、 "C"、 "D"、 "E"、 "F"、 "G"、 "H")。
関数F65(X、Y、Z、I){ にconsole.log(引数[ 0]); // 1。 X = 2 ; はconsole.log(引数[ 0]); // 2つの 。引数[0] = 5 ; コンソール.logの(X); // 5 // 引数を対応するパラメータ値が発生する変更も変更 // 値の変化が引数、変化しない形状に対応するパラメータ発生 (I)にconsole.logと、// UN I = 2 ; にconsole.log(I); // 2 はconsole.log(引数[3]); // UN // 割り当ての長い、より正式なパラメータ以外のパラメータ引数; // 対応する引数は変更しない(無効であること、である、未定義印刷) } (F65を1,2,3)。
注意:関数名の.argumentsとの直接の引数が同じではない、実際には、一般的に直接引数です。
第三に、戻り値:リターン
パラメータのデフォルト値
デフォルト値を使用しない、使用に、対応するパラメータの引数がある場合、この関数は、呼び出されると、引数の値:形状関数のパラメータは、直接(未定義一切割り当ては行われません)書き込み時に割り当てることができます。
パラメータ値を渡す:不定、関数は(必ずしも不定ではない)パラメータのデフォルト値が使用され、
パラメータ取得.LENGTHの数は、参照番号割り当て有形デフォルト値が含まれていない場合、割り当てられた形状は、長さで書かれたパラメータである場合、デフォルト値はゼロになります。
したがって、それが最後にデフォルトのパラメータ値を割り当てる必要が推奨されます。
ES6矢印機能
= X-> num2.has(X-)が式ほとんどの時間(このテンプレートに、関数戻り num2.has(X))の結果を
一般的には次の特性があります。
1、書き込み機能を省略することができます
2、唯一つのパラメータが存在する場合には、括弧を戦うことができません
3.唯一の実行文は、あなたがブレースを戦うことができない場合
結果を返すように4、唯一の実行文、およびこのステートメントのニーズ、あなたはリターンを書き込むことはできません
5、引数を使用することはできません
6、これはその機能にバインドされることはありません
7、コンストラクタとして使用できません
矢印関数に一つだけの文を使用して、時間のほとんどは、簡単で便利なことです。
NUM1 =せて新しいセット([1、2、3、4 ])。 NUM2せ = 新しいセット([3、4、5、6 ])。 // 并集 組合=ましょう新しいセット([... NUM1、NUM2 ...]); console.log(労働組合)。// 集合{1、2、3、4、5、6} // 交集 交差せ= 新しいセット( [... NUM1] .filter(X => num2.has(X)))。 console.log(交差)。// 集合{3,4} // 差集 せ差= 新しいセット( [... NUM1] .filter(X =>!num2.has(X)))。 console.log(差分)。// 集合{1,2}
コールバック関数
別の関数Bを呼び出すためにパラメータを渡す場合関数に、関数Aは、コールバック関数です。
使用されるコールバック関数として機能する上矢印。
一般的なコールバック関数
// のソートされた配列 のlet ARR = 1 ,. 3 ,. 7 ,. 6 ,. 9 ,. 4 ,. 6、2。]; ARR1のLET = arr.sort( 関数(A、B){ // 戻りBA; リターン A- B。 } ) ()ARR1の;はconsole.log はconsole.log(arr.sort((A、B) => A - B)); // 昇順 にconsole.log(arr.sort((A、B )=> B - A)); // 降順
非常に重要な、非常に大規模でのコールバック関数。
arr.every( 関数(指数){ リターン・インデックス%2 == 0 ; } と略記//) // 真に戻る前にすべてのアレイを満たす条件の各値 にconsole.logを(arr.every(インデックス=>インデックス2 == 0%)); // falseに // 配列がtrueを返すを有するいくつかの条件 にconsole.log(arr.some(インデックス=>インデックス%2 == 0)); // 真 // フィルタ(フィルタ)値は、単にすべてのリターン はconsole.log(arr.filter(インデックスは=>インデックス%2 == 0)); // [6,6,4,2] // マップ戻り値がそれぞれの条件満たし コンソール.logの(arr.map(インデックス=>インデックス%2 == 0)); // [falseに、falseに、falseに、trueに、真の真の、真の、falseにします]
生命維持
すぐに呼び出される関数式
即時実行機能、すなわち呼び出し、破壊後の呼び出しを作成します
注:と呼ばれるそこに変数の即時機能を実行すると、変数が破壊されることはありませんが、「目に見えない」だろう、唯一の「人々は」を参照してください。それを呼び出します。
// 一般的な表記 (関数のFn(){ にconsole.log( "F65" ); })() // であり得る (機能のFn(){ にconsole.log( "F65" ); }()) !(機能FN(){ にconsole.log( "F65" ); }()) - (関数FN(){ にconsole.log( "F65" ); }()) // 主にこのコードの一部と他のコード区画を作成します全体を形成するために、何の曖昧さを開けません