JavaScript(default parameter/arguments/Rest parameter)


関数のdefaultパラメータの挿入


関数を呼び出すと、パラメータにデフォルト値(default)を与えるパリパラメータ値が誤って書き込まれることがあります.
function 더하기 (a, b = 10){
  console.log(a + b)
}
더하기(1);
一般的には、プラス記号(1,2)のような2つのパラメータを書くべきですが、現在は1つのパラメータを書いているので、aには1つの値があります.このとき、b=10というデフォルト値が与えられるので、1+10=11で動作が開始される.
基本パラメータ値を指定する場合は、等号として宣言し、パラメータが定義されていない場合にのみ、等号の右側の値がトリガーされることに注意してください.
なお、演算、関数は、以下のようにデフォルト値としてもよい.
function 더하기 (a, b = 2 * a){
  console.log(a + b)
}
더하기(3);
function 임시함수(){
  return 10 
}
function 더하기 (a, b = 임시함수() ){
  console.log(a + b)
}
더하기(3);

関数のパラメータ


関数のパラメータが多数存在する場合,逐一定義して処理することは困難である.したがって,すべてのパラメータを同時に処理できるキーワードはargumentsである.
Argumentsは配列に似た変数で、パラメータを[]に含めるキーワードです.
パラメータ出力時
function 함수(a,b,c){
  console.log(arguments)
}
함수(2,3,4);

パラメータにパラメータ値を1つずつ出力します.
function 함수(a,b,c){
  console.log(arguments[0])
  console.log(arguments[1])
  console.log(arguments[2])
}
함수(2,3,4);
function 함수(a,b,c){
  for (var i = 0; i < arguments.length; i++){
    console.log(arguments[i])
  }
}
함수(2,3,4);
など)argumentsキーワードは、パラメータを処理するための構文キーワードです.
など)パラメータ==パラメータ=parameter==関数を定義するときに外部から受ける任意の値.

Restパラメータ


パラメータの類似配列オブジェクトは、配列を使用できない方法が欠点です.関数で配列を使用する場合が多いが、argumentsオブジェクトでは配列メソッドを使用するには他の操作が必要です.
従って、restパラメータはES 6で使用することができる.これは、類似した配列オブジェクトではなく配列を表します.
次のコードがある場合、a、bのパラメータは1番目と2番目のパラメータのみをマッピングします.残りの係数はrestパラメータによって配列にマッピングされる.また、複数のパラメータを入力しても、予めパラメータを指定する必要はありません.
function 함수2(a, b, ...rest){
  console.log(a); // 1
  console.log(b); // 2
  console.log(rest); // [3,4,5,6,7]
}
함수2(1,2,3,4,5,6,7);
しかし,restの意味のようにパラメータの残りの部分に用いることができる.このため、以下のように使用するとエラーが発生します.
function 함수2(a, ...rest, b){
  console.log(rest)
}
また、再利用は不可能です.
function 함수2(a, ...rest, ...rest2){
  console.log(rest)
}
restパラメータは常に最後のパラメータとして追加する必要があります.
function 함수2(a, b , ...rest){
  console.log(rest)
}
ちょっと待って...銀色spreadとrestパラメータに使用されますが、どのような違いがありますか?
restパラメータはパラメータビットでのみ使用され、混同されません.

適用


アルファベット順にbearという言葉をa b e rに出力したいなら?
アルファベットはsort()関数で順次出力できます.この関数は配列メソッドなので、配列に値を付ける必要があります.まずspreadでb e a rを割って[]に入れると簡単に解決できます.
function 정렬(글자){
  console.log( [...글자].sort() )
}
정렬('bear'); 

データ・マイニング機能の作成


「文字数」(aacbb)と入力した場合は、コンソールウィンドウに出力します.
{ a : 2, b : 3, c : 1 }
簡単な説明
forEach文で値を含む配列を繰り返します.オブジェクトに値がある場合は、値+1を含むコードを作成します.値がない場合は、値:1を入力します.
function 글자세기(글){
var 결과 = {};
  [...글].forEach(function(a){
     if( 결과[a] > 0 ){ 결과[a]++ } else { 결과[a] = 1 } 
  }); 
console.log(결과)
}
글자세기('aacbbb')
解析
1.文字数関数に「aacbb」値をパラメータとして与えます.
2.展開によりパラメータ値を配列に分割します.
3.forEach文で配列の値を繰り返します.(forEach文のパラメータaは配列の値を表す.)
4.必要な結果がオブジェクトシェイプであるため、オブジェクトのデフォルト値を宣言します.
5.aは配列中の値a、a、c、b、bを表し、結果[a]=オブジェクト中の値、すなわち個数である.
すなわちobject[i](結果[a])などの形式はforサイクルで利用可能である.
参照)
var obj = { "id": "1", "name": "mango", "color": "green"};
for(let i in obj) {
  console.log(i); // key
  console.log(obj[i]); // value against the key
}

  • if( 결과[a] > 0 ){ 결과[a]++ } 
    つまり、個数が0より大きい場合は、オブジェクトにキー値が既に存在することを示すので、個数を増やす条件式です.

  • else { 결과[a] = 1 } 
    存在しない場合、つまりオブジェクトにキー値が存在しない場合、条件式はキー値を1に設定します.
    したがって、出力は次のようになります.
    { a : 2, b : 3, c : 1 }