ES6 - 扩展运算符(Spread)

4 篇文章 0 订阅
3 篇文章 0 订阅

扩展运算符(Spread)

  1. 含义:扩展运算符用(…)表示,它会将一个数组转化为用逗号分隔的参数序列。
    嗯?这个含义???????话不多说,上例子!(要学就认真理解内容,请认真看并理解例子3分钟)

  2. 举些栗子

    console.log(...[1, 2, 3])               // 输出结果为:1 2 3 
    console.log(1, ...[2, 3, 4], 5)         // 输出结果为:1 2 3 4 5
    [...document.querySelectorAll('div')]   // 输出结果为:[<div>, <div>, <div>]
    

    看这几个例子就明白了吧!是不是超简单?看下面几个扩展

    [...[1, 2, 3]]  						// 输出结果为:[1,2,3]
    [...[], 1]  							// 输出结果为:[1] --如果扩展运算符后面是一个空数组,则不产生任何效果。
    new Date(...[2015, 1, 1])    			// 输出结果为:Sun Feb 01 2015 00:00:00 GMT+0800 (中国标准时间)
    // 对象的扩展
    console.log({...{a:1}, b:2})			// 输出结果为:{a:1,b:2}
    console.log({...{a:1}, ...{b:2}})  		// 输出结果为:{a:1, b:2}
    // 字符串的扩展
    [...[1, 2, 3],..."qqq"]  				//[1, 2, 3, "q", "q", "q"]
    
  3. 应用场景

    • – 函数
      官方例子1
      function add(x, y) {
      	return x + y
      }
      const number = [12, 8]
      add(...number)				// 输出结果为:20
      
      官方例子2
      function push(array, ...items) {
        array.push(...items)
      }
      
      扩展运算符与正常的函数参数可以结合使用,非常灵活
      function f(v, w, x, y, z) { 
      	return v+w+x+y+z
      }
      const args = [0, 1]
      f(-1, ...args, 2, ...[3])    // 输出结果为:5
      
      扩展运算符还可以与表达式一起使用
      const x = 10
      const arr = [...(x>0?['a']:[]), 'b']
      console.log(arr)    		// 输出结果:['a', 'b']   (如果x小于0,输出['b'])
      
      注:只有函数调用时,扩展运算符才可以放在圆括号中,否则报错。如:(...[1, 2]) console.log((...[1, 2])) 均会报:Uncaught SyntaxError: Unexpected number
  • – 复制数组
    数字是复合的数据类型,直接复制,只是复制了指向底部的指针,而不是克隆一个全新的数组。比如经常使用:
    const a = [1, 2]
    const b = a
    a[0] = 2
    console.log(b)				// 输出结果为:[2, 2] --修改a,b会发生改变
    
    ES5中,只能用concat方法复制数组,看下面!
    const a1 = [1, 2];
    const a2 = a1.concat();
    a2[0] = 2;
    a1 						   // 输出结果为:[1, 2]
    
    一个字,繁,来看看扩展运算符的神操作!
    const a1 = [1, 2];			// 要复制的值
    // 方式 1
    const a2 = [...a1];
    // 方式 2
    const [...a2] = a1;
    
  • – 合并数组
    const arr1 = ['a', 'b'];
    const arr2 = ['c'];
    const arr3 = ['d', 'e'];
    
    // ES5 的合并数组
    arr1.concat(arr2, arr3);			// [ 'a', 'b', 'c', 'd', 'e' ]
    // ES6 的合并数组
    [...arr1, ...arr2, ...arr3]			// [ 'a', 'b', 'c', 'd', 'e' ]
    
    :这两种方式,都是浅拷贝。。。即新数组都是队员数组的引用,如果修改了指向的值,则新数组的值也将随之改变。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值