Es 6-関数(二)

5394 ワード

以下のブログを参照して、元のブログをもっと詳しく見ることをお勧めします.ES 6チェン1峰

restパラメータ


restパラメータは関数の余分なパラメータを取得し、restの後ろの変数は配列である.変数はパラメータを配列に入れます.使用方法:...変数名
function xyd(...a){
    console.log(a);
}

xyd(1,2,3)//[1,2,3];  xyd ,rest a, 1,2,3 ;

注意restの後に他のパラメータは存在しない、すなわちrestパラメータは関数のパラメータの最後のパラメータでなければならない.
 function xyd(...a,b){console.log(a,b);}
 xyd(1,2,3,4,6)

新聞を誤る
関数のlengthプロパティにはrestパラメータは含まれません.

拡張演算子


拡張演算子はrestパラメータの逆演算と見なすことができ、配列をカンマで区切られたパラメータシーケンスに変換する方法です:...
console.log(...[1,2,3]);//1 2 3
console.log(1,...[1,2,3]);//  1 1 2 3

演算記号は主に関数呼び出しに用いられる.
function xyd(x,y){
    console.log('x='+x,'y='+y)
}
var arr = [1,2];
xyd(...arr);//3

上の演算子は使用されています.実行関数xydがそうである場合、変数arrは配列であり、演算子を使用して変数arrをパラメータシーケンスに変換する.ここで結果は3です.
拡張演算子はapplyメソッドの代わりに使用できます.
// ES5 
function f(x, y, z) {
 console.log(x,y,z)
}
var args = [0, 1, 2];
f.apply(null, args);

// ES6 
function f(x, y, z) {
  // ...
}
var arr= [0, 1, 2];
f(...arr);

拡張演算子の適用:
配列を結合する;
 var a = [1,2,3];
 var b = [4,5,6];
 var c = [7,8,9];
var x = [...a,...b,...c]
console.log(x);//[1, 2, 3, 4, 5, 6, 7, 8, 9]

解構賦値と結合する.

var [fistn,...test] = [1,2,3,4,5,6];
console.log(fistn);//1
console.log(test);//[2,3,4,5,6]

注:拡張演算子を使用して解構賦値と組み合わせて使用する場合.拡張演算子は最後でなければなりません.そうしないと、エラーが発生します.

nameプロパティ


関数のnameプロパティは、関数の名前を返します.
 function xyd(){
}
 console.log(xyd.name);//xyd

注意関数は匿名の関数です.ES 5は空の文字列を返す.ES 6は実際の関数の名前を返す.
var a = function (){}
console.log(a.name);// ES5  ""
console.log(a.name);// ES6  a