JSES6機能拡張

1.関数パラメーターのデフォルト値を指定します

function fn(a = 10, b =20){
    
    
	console.log(a + b); // 30
}
fn()

2.関数の残りのパラメーター

restパラメーターの形式( "... variable name")は、関数の追加パラメーターを取得するために使用されるため、argumentsオブジェクトを使用する必要はありません。restパラメーターを持つ変数は配列であり、変数は追加のパラメーターを配列に配置します。

function sum(){
    
    
	var args = arguments;
	var res = 0;
	for(var i = 0; i<args.length;i++){
    
    
		res += args[i];
	}
	console.log(res);
}
sum(1,2,3,4,5,6)	

変更後

function sum(...arr){
    
    
	var res = 0;
	for(var i=0; i<arr.length;i++){
    
    
	res += arr[i];
}
	console.log(res);
}
sum(10,1,2,3,4,5)		

3.矢印機能

矢印「=>」を使用して関数を定義します

const fn = a => a;
const fn2 = function (a){
    
    
	return a;
};
console.log(fn(1));
console.log(fn(2));	

```javascript
const fn = (a, b) => a + b;
console.log(fn(1, 2)); // 3

const fn = (a, b) => {
    
    
	a = a * 2;
	b = b * 3;
	return a + b;
};	
console.log(fn(1, 2)); // 6

矢印関数には独自のthisオブジェクトがないため、使用される場合、その内部thisは、使用される環境のオブジェクトではなく、定義される環境のオブジェクトになります。
矢印関数のcallapply bindを使用して、この
内部の方向を変更することはできません。矢印関数の本体に引数オブジェクトはありません。使用する場合は、代わりにRestパラメーターを使用できます。

function fn (){
    
    
	setTimeout(() => {
    
    
		console.log(arguments);
	},1000)
	}
	fn(1,2,3)	

コンストラクターとして使用することはできません。また、新しいコマンドを使用することもできません。そうしないと、エラーがスローされます。

const Fn = (a, b) => a + b;
const f = new Fn(1, 2);

矢印関数はジェネレーターとして使用できません

おすすめ

転載: blog.csdn.net/weixin_43176019/article/details/109180817