JS ES扩展运算符怎么使用
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"JS ES扩展运算符怎么使用",在日常操作中,相信很多人在JS ES扩展运算符怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"JS ES扩展运算
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
东南大学网络安全学院温广辉
盘锦盒子网络技术有限公司
河北北斗授时模块服务器虚拟主机
吉林统一软件开发服务推广
派出所开展网络安全知识活动
如何修改云服务器主机名
网络安全宣传海报作品高质量
辽宁口碑好的软件开发具体地址
厦门二维进化网络技术怎么样
服务器宕机修复起码要多久
sql数据库与python
服务器拆数据盘步骤
工作邮箱使用的服务器
旅游电子商务的网络技术基础
深圳数据库工程师
网络安全教育倡议书400字
terraria服务器
服务器出现问题请稍后
中兴的基带软件开发是干啥的
网络安全责任责任书
了解网络安全知识的好处
注意网络安全当心被骗英语
小学生网络安全知识题目
息数据库建设技术原理
法环 连不上服务器
厦门汽车备件管理软件开发
单招计算机网络技术专业技能测试
理工大学网络技术与应用答案
u8期初数据库表
微信软件开发商