JS ES扩展运算符怎么使用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"JS ES扩展运算符怎么使用",在日常操作中,相信很多人在JS ES扩展运算符怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"JS ES扩展运算
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
互联网金融科技
互联网黑科技
上海睿民互联网科技有限公司
金融科技与互联网金融
美国互联网科技
北京互联网络科技有限公司
易通互联网络科技有限公司
沃里互联网科技
广州善班互联网科技
联恩商钥互联网科技有限公司
广州市恰铎互联网科技有限公司
特约风豹互联网科技为什么扣费
工业互联网展湾科技股份有限公司
山东有哪些互联网科技公司
互联网科技数字货币
卡尔迅互联网科技有限公司
互联网时代科技型公司的机会
求路客互联网科技电话
互联网科技大佬云集
互联网 科技节活动 微视频大赛
互联网 卓越科技
掌上梦互联网科技
互联网科技咨询
卫星互联网科技股票
欧洲十大科技互联网公司
湖南诚度互联网科技有限公司
民营互联网公司国防科技
卓翼科技产业互联网合作
上海创道互联网络科技有限公司
扫呗互联网科技有限公司