当前位置: 首页 > news >正文

JavaScript 里三个点 ... 的用法

 // table表头数据let tableHeadData = deepClone(data);let tableCacheData = [];//表格缓存对比if (!parent && isCacheHeadData) {// 缓存数据keylet tableCacheKey = `${window.location.pathname}-${$self.attr('id')}`if (localStorage.getItem(tableCacheKey)) {//根据缓存数据更新列表数据let cacheData = JSON.parse(localStorage.getItem(tableCacheKey))let datas = []cacheData.map(e => {let index = tableHeadData.findIndex(v => e.id === v.name)if (index !== -1) {datas.push({ ...tableHeadData[index], ...{ ishide: !e.checked, width: e.width } })tableHeadData.splice(index, 1)}})tableHeadData = [...datas, ...tableHeadData]}//设置更新缓存数据tableHeadData.map(e => {tableCacheData.push({ id: e.name, pId: "", width: e.width, name: e.label, checked: e.ishide === true ? false : true })})localStorage.setItem(tableCacheKey, JSON.stringify(tableCacheData))}

示例一

function myFunc(a, b, ...args) {console.log(a); // 22console.log(b); // 98console.log(args); // [43, 3, 26]
};
myFunc(22, 98, 43, 3, 26);

示例二

function myFunc(...[x, y, z]) {return x * y* z;
}myFunc(1)          // NaN
myFunc(1, 2, 3)    // 6
myFunc(1, 2, 3, 4) // 6 (fourth parameter is not destructured)

示例三

function myFunc(x, y, ...params) { // used rest operator hereconsole.log(x);console.log(y);console.log(params);
}var inputs = ["a", "b", "c", "d", "e", "f"];
myFunc(...inputs); // used spread operator here
// "a"
// "b"
// ["c", "d", "e", "f"]

示例四

const featured = ['Deep Dish', 'Pepperoni', 'Hawaiian'];
const specialty = ['Meatzza', 'Spicy Mama', 'Margherita'];const pizzas = [...featured, 'veg pizza', ...specialty];console.log(pizzas); // 'Deep Dish', 'Pepperoni', 'Hawaiian', 'veg pizza', 'Meatzza', 'Spicy Mama', 'Margherita'

示例五

var obj1 = { foo: 'bar', x: 42 };
var obj2 = { foo: 'baz', y: 13 };var clonedObj = { ...obj1 };
// Object { foo: "bar", x: 42 }var mergedObj = { ...obj1, ...obj2 };
// Object { foo: "baz", x: 42, y: 13 }

JavaScript 里三个点 ... 的用法

合并数组或者对象

当我们在代码中看到三个点 (…) 时,它要么是 rest 参数,要么是展开运算符。

有一个简单的方法来区分它们:

当三个点 (…) 位于函数参数的末尾时,它是“rest 参数”并将参数列表的其余部分收集到一个数组中。

当三个点 (…) 出现在函数调用或类似函数中时,它被称为“扩展运算符”并将数组扩展为 list.

http://www.lryc.cn/news/111011.html

相关文章:

  • Linux修改系统语言
  • Spring注解开发
  • 图像处理库(Opencv, Matplotlib, PIL)以及三者之间的转换
  • html+Vue+封装axios实现发送请求
  • GoogLeNet卷积神经网络输出数据形参分析-笔记
  • 【docker】dockerfile发布springboot项目
  • 利用docker run -v 命令实现使用宿主机中没有的命令
  • 【小沐学NLP】在线AI绘画网站(百度:文心一格)
  • react经验5:访问子组件内容
  • 【LeetCode】647. 回文子串
  • Open3D(C++) 角度制与弧度制的相互转换
  • 【小沐学NLP】在线AI绘画网站(网易云课堂:AI绘画工坊)
  • GNN code Tips
  • 物联网|按键实验---学习I/O的输入及中断的编程|函数说明的格式|如何使用CMSIS的延时|读取通过外部中断实现按键捕获代码的实现及分析-学习笔记(14)
  • Java对象的前世今生
  • Qt中JSON的使用
  • linux安装Tomcat部署jpress教程
  • 高并发负载均衡---LVS
  • 微前端中的 CSS
  • 在CSDN学Golang场景化解决方案(分布式日志系统)
  • 电脑第一次使用屏幕键盘
  • 【C#学习笔记】类型转换
  • SpringBoot+SSM实战<一>:打造高效便捷的企业级Java外卖订购系统
  • 笙默考试管理系统-MyExamTest--calculagraph
  • Mysql面试突击班索引,事务与锁
  • 数据结构——AVL树
  • AI写作宝有哪些,分享两种AI写作工具
  • 【uniapp 控制页面滑动速度】
  • 7-24 整数的分类处理 (20 分)
  • MYSQL事务同时修改单条记录