JS ES扩展运算符怎么使用
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"JS ES扩展运算符怎么使用",在日常操作中,相信很多人在JS ES扩展运算符怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"JS ES扩展运算
千家信息网最后更新 2025年11月07日JS ES扩展运算符怎么使用一、扩展运算符
二、替代apply()方法
三、扩展运算符的应用
这篇文章主要介绍"JS ES扩展运算符怎么使用",在日常操作中,相信很多人在JS ES扩展运算符怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"JS ES扩展运算符怎么使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一、扩展运算符
扩展运算符是三个点... , 允许将一个表达式原地展开,当需要多个参数(比如函数的调用时) 或者多个值(比如数组)它会将其转为用逗号分隔的参数序列。
示例代码如下所示:
// 定义一个数组let arr = [1, 2, 3, 4, 5, 6]// 使用 ... 扩展运算符展开console.log(...arr); // 1 2 3 4 5 6// 定义一个函数function fun(...item) { console.log(...item);}// 调用函数fun(1, 2, 3, 4, 5, 6) // 1 2 3 4 5 6// 与表达式配合使用let x = 10arr = [ ...(x > 0 ? ['a'] : []), 'b',];console.log(...arr); //a b二、替代apply()方法
由于扩展运算符可以展开数组,所以不再需要apply方法,将数组转为函数的参数了。
示例代码如下所示:
// 定义一个函数function fun(a, b, c, d, e) { console.log(a, b, c, d, e);}// 定义一个数组let arr = [1, 2, 3, 4, 5]// ES5 调用方式fun.apply(null, arr) //1 2 3 4 5// ES6 调用方式fun(...arr) // 1 2 3 4 5假如我们在实际开发中取出数组中的最大值,采用的方式如下所示:
let arr = [1, 20, 30, 50, 3, 88, ]// ES5的写法let max = Math.max.apply(null, arr)console.log(max); // 88
E的写法如下所示:
let arr = [1, 20, 30, 50, 3, 88, ]// ES6 的写法let max = Math.max(...arr)console.log(max); // 88
三、扩展运算符的应用
扩展数组的应用主要表现在以下几个方面
1、复制数组
在ECMAScript 2015之前中如果仅仅是简单的将arr1赋值给arr2,修改arr2时,arr1也会进行变化,这就是所谓的浅复制 ,
示例代码如下所示:
先来理解一下深浅复制的概念:
深复制:复制数组中的元素内容
浅复制:复制数组元素内容的内存地址
let arr1 = [1, 2, 3, 4, 5]let arr2 = arr1console.log(arr2); // [ 1, 2, 3, 4, 5 ]// 修改 arr2 的数据内容arr2[2] = 6;// 两者都会发生改变console.log(arr1, arr2); // [ 1, 2, 6, 4, 5 ] [ 1, 2, 6, 4, 5 ]
如果想要完成深复制,示例代码如下所示:
let arr1 = [1, 2, 3, 4, 5]let arr2 = []// ES5 写法for (let i = 0; i < arr1.length; i++) { arr2[i] = arr1[i];}arr2[2] = 6;// 仅仅 arr2 改变console.log(arr1, arr2); // [ 1, 2, 3, 4, 5 ] [ 1, 2, 6, 4, 5 ]// ES6 写法arr2 = [...arr1]arr2[2] = 6;// 仅仅 arr2 改变console.log(arr1, arr2); // [ 1, 2, 3, 4, 5 ] [ 1, 2, 6, 4, 5 ]2、合并数组
扩展运算符提供了数组合并的新写法。示例代码如下所示:
const arr1 = ['a', 'b'];const arr2 = ['c'];const arr3 = ['d', 'e'];// ES5 的合并数组console.log(arr1.concat(arr2, arr3)); // [ 'a', 'b', 'c', 'd', 'e' ]// ES6 的合并数组console.log([...arr1, ...arr2, ...arr3]); // [ 'a', 'b', 'c', 'd', 'e' ]
值得注意的是,这两种方式都是浅复制
3、与解耦赋值结合使用
扩展运算符可以与解构赋值结合起来,用于生成数组(用于取剩余数据)。
注意 :只能将扩展运算符放置最后。
示例代码如下所示:
// 场景分析:取数组中的第一个值和最后一个值let arr = [1, 2, 3, 4, 5]let first, rest;// ES5 的写法:借用 Array.slice() 函数first = arr[0]rest = arr.slice(1)console.log(first, rest); // 1 [ 2, 3, 4, 5 ]// ES6 的写法[first, ...rest] = arrconsole.log(first, rest); // 1 [ 2, 3, 4, 5 ]
4、将字符串拆分为数组
扩展运算符还可以将字符串转为真正的数组。示例代码如下所示:
let str = '狐妖小红娘'console.log([...str]); // [ '狐', '妖', '小', '红', '娘' ]
到此,关于"JS ES扩展运算符怎么使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数组
运算符
运算
写法
代码
示例
函数
方式
学习
内容
参数
方法
元素
多个
字符
字符串
数据
更多
表达式
帮助
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
快云服务器
魔兽轮回服务器在哪
软件开发 培训机构
面试软件开发职位要注意哪些
软件开发系统移交
毕业数据库文献
奥西450 服务器装系统
我的世界老式跑酷服务器
嘉聚宝软件开发专营店
福建java软件开发服务
普陀区综合软件开发采购
云服务器与云服务器之间的通信
华为软件开发是用什么开发
易云游网络技术 探路者
2008共享服务器慢
ebay网络技术
南京小米软件开发哪个部门好
宜章专业的电脑软件开发
bak导入数据库文件
华为服务器存储
苹果下载微信用不了数据库
数据库的编程题
浪潮网络技术卓越
网络安全威胁及
阿里云ecs服务器linux
服务器怎么选参数
qt服务器与客户端
达州市住建局数据库安全
华为软件开发岗要求过六级嘛
有源码没数据库怎么办