【JS007】ES6的学习笔记之扩展运算符(数组篇)

日期:2021年8月15日
作者:Commas
注释:如果您觉得有所帮助,帮忙点个赞;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
(ง •_•)ง 积跬步以致千里,ES6的学习笔记
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006



一、数组扩展运算符的定义

定义:扩展运算符spread)是三个点(...),可以将一个数组转为用逗号分隔的参数序列。

let nameGroup = ["张三","李四"];
console.log(nameGroup);    //(2) ["张三", "李四"]
console.log(...nameGroup); //张三 李四

let numGroup = [1,2,3,4];
console.log(numGroup);    //(4) [1, 2, 3, 4]
console.log(...numGroup); //1 2 3 4

二、数组扩展运算符的作用

  1. 数组的合并
    语法:mergeArr = [...arr1,...arr2,...arr3,...arr4]
let group1 = ["张三","李四"];
console.log(group1);    //(2) ["张三", "李四"]
console.log(...group1); //张三 李四

let group2 = ["王五","赵六"];
console.log(group2);    //(2) ["王五", "赵六"]
console.log(...group2); //王五 赵六

//(1)数组的方法合并数组
let groupConcat = group1.concat(group2);
console.log(groupConcat);    //(4) ["张三", "李四", "王五", "赵六"]
console.log(...groupConcat); //张三 李四 王五 赵六

//(2)扩展运算符
let groupSpread = [...group1,...group2];
console.log(groupSpread);    //(4) ["张三", "李四", "王五", "赵六"]
console.log(...groupSpread); //张三 李四 王五 赵六
  1. 数组的复制
    语法:newArr = [...oldArr]
let oldArr = [1,2,3];
//(1)同一个数组,引用是一样的
let oldArr1 = oldArr;
console.log(oldArr1);           //(3) [1, 2, 3]
console.log(oldArr1===oldArr);  //true

//(2)数组的复制,不同的引用
let newArr = [...oldArr];
console.log(newArr);            //(3) [1, 2, 3]
console.log(newArr===oldArr);   //false
  1. 将伪数组转换为真数组
    语法:Array = [...ArrayLike]
    伪数组:实现了 Iterator(迭代器且可遍历),但非数组的数据;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <script>
        
        //(1)伪数组
        let divs = document.getElementsByTagName("div");
        console.log(divs);      //HTMLCollection(3) [div, div, div]
        
        let strS = "Hello";
        console.log(strS);      //Hello
        
        //(2)真数组
		let divArr = [...divs];
        console.log(divArr);    //(3) [div, div, div]

        let strArr = [...strS];
        console.log(strArr);    //(5) ["H", "e", "l", "l", "o"]
    </script>
</body>
</html>
  1. 作为函数中的rest参数,即剩余运算符(the rest operator)
    形式:function fn(a,b,c,...args){}function fn(...args){}
    注意:
    rest参数一般放于所有形参后面,用于接收形参多出的参数;
    ②如函数无形参,则所接受的参数就是rest参数;
//(1)arguments版本
let sumByArgs = function(){
    console.log(arguments)  
    //控制台输出:
    //Arguments(4) [1, 2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ]

    console.log(arguments instanceof Array) 
    //控制台输出:false

    let total = 0;
    for(let i=0;i<arguments.length;i++){
        total += arguments[i]
    };
    return total
};
let sum1 = sumByArgs(1,2,3,4);
console.log(sum1);              //控制台输出:10

//(2)rest版本
let sumByRest = function(...args){
    console.log(args)   
    //控制台输出:(5) [1, 2, 3, 4, 5]
    console.log(args instanceof Array)  
    //控制台输出:true
    let total = 0;
    for(let i=0;i<args.length;i++){
        total += args[i]
    };
    return total
};
let sum2 = sumByRest(1,2,3,4,5);
console.log(sum2);              //控制台输出:15
序号arguments对象rest参数
1只接收没有形参对应的实参包含传递给函数的所有实参
2真数组,无附加属性伪数组,有附件属性,如callee: ƒ ()

版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/119717766

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Commas.KM

码路共同进步,感恩一路有您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值