50_RN笔记8_三点运算符

一,三点运算符

  • 对于三个点号,三点放在形参或者等号左边为rest运算符;
  • 放在实参或者等号右边为spread运算符;
  • 或者说,放在被赋值一方为rest运算符,放在赋值一方为扩展运算符

1,rest运算符

用逗号隔开的值序列组合成一个数组,记住是在定义的时候使用,用在等号左边

在函数中定义参数使用

//1,用于函数不定参数:只有rest
var bar = function(...args) {
	for (let el of args) {
		console.log(el);
	}
}
bar(1, 2, 3, 4);
//1
//2
//3
//4
 
//2,用于函数不定参数:和其他参数组合
bar = function(a, ...args) {
	console.log(a);
	console.log(args);
}
bar(1, 2, 3, 4);
//1
//[ 2, 3, 4 ]


//3,rest不能作为最后的一个参数
let fun3=function(arr1,..args,arr2){
 console.log(args);
}//此时报错!切记,三点作为rest参数的时候,其后不能再有任何参数,只能作为最后一个角色出现!

在解构中使用

//1,配合解构使用:
var [a, ...rest] = [1, 2, 3, 4];
console.log(a);//1
console.log(rest);//[2, 3, 4]

//2,配合解构使用,rest只能作为最后的元素
var [x,...y,z]=[1,2,3];
//报错,Rest element must be last element in array

2,扩展运算符

是把数组或类数组对象展开成一系列用逗号隔开的值,记住是在使用的时候用,出现在等号右边

//1,扩展运算符放末尾
let arr=[1,2,3];
console.log(...arr);
//1, 2, 3返回数组中的各项
 
//2,扩展运算符放中间
let a=[2,3];
console.log(1,...a,4);
//1,2,3,4扩展运算符可以放在中间

//3,把一个数组插入另一个数组字面量
var arr4 = [...arr, 4, 5, 6];
console.log(arr4);
//[1, 2, 3, 4, 5, 6]
 
//4,字符串转数组
var str = 'love';
var arr5 = [...str];
console.log(arr5);
//[ 'l', 'o', 'v', 'e' ]

//5,函数的实参
var foo = function(a, b, c) {
	console.log(a);
	console.log(b);
	console.log(c);
}
var arr = [1, 2, 3];
//传统写法
foo(arr[0], arr[1], arr[2]);
 
//使用扩展运算符
foo(...arr);
//1
//2
//3

 

你可能感兴趣的:(RN)