javascript - (...)扩展运算符怎么样去理解?
本文介绍了javascript - (...)扩展运算符怎么样去理解?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
ES6中数组方法的扩展看到Array.from,有个...这样的运算符,里面写的是,可以讲某些数据结构转为数组。看完例子表示不太理解。1.某些数据结构指的是哪些?2.可以提供更加容易理解的例子嘛。多谢
解决方案
不知道您有没有接触过后端语言,例如 c#
我这里就拿 c#
来举栗子了
这个在 c#
语言中叫做可变参数 就是方法的参数可以是无限个 实际上是个数组 由编译器提供的语法糖 让程序员可以更加方便的传递参数
以下是 c#
示例代码:
public int[] Filter(params int[] arr)
{
if(arr == null || arr.Length <=0) return arr;
return arr.Where(x => x % 2 == 0);
}
上面方法定义了一个可变参数的方法 Filter
方法内部是实现寻找整型数组中的所有偶数。
在 c#
中为数组参数前加上关键字 params
即表示这个参数为可变参数 (可以传递0 ~ 无限个参数),
并要求可变参数必须是这个方法的最后一个参数。
如果不加 params
关键字调用 Filter
方法时必须传递一个整型数组,如:
Filter(new int[] {1, 2, 3 ,4, 5, 6, 7, 8, 9, 0});
使用可变参数可以直接调用:
Filter(); //不传参数默认为null
Filter(1, 2, 3 ,4, 5, 6, 7, 8, 9, 0 [, ...]); //将参数的每一项都当作 `int` 对象赋值给 `arr` 数组接收
而 ES6
中的 (...) 也是如此
let demo = function demo(...values){
console.warn(values.join('\n'));
}
调用
demo('start', 1, 3, 5, 7, 9, 'end');
// 输出:
// start
// 1
// 3
// 5
// 7
// 9
// end
// 如不使用 (...) 则需要
demo(['start', 1, 3, 5, 7, 9, 'end']);
这篇关于javascript - (...)扩展运算符怎么样去理解?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文