ECMAScript6-运算符的扩展

运算符的扩展

上期我们讲解了字符串的相关内容,这期我们讲解运算符相关的知识。

es6之扩展运算符 三个点(…)

  • 对象的扩展运算符
  • 数组的扩展运算符
  • 剩余参数的处理


1、对象的扩展运算符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //声明⼀个对象stu1,内有三个属性
    let stu1 = {name:'李四',age:22,sex:'男'};
    //使⽤三个点将stu1对象中的属性复制⼀份赋给stu2(独⽴的)
    let stu2 = {...stu1};
    stu1.age = 30;
    console.log(stu2); //{name: "李四", age: 22, sex: "男"}

</script>
</body>
</html>

上述代码里面,类似于对变量的复制。

2、数组的扩展运算符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //声明⼀个数组,并赋初值,使⽤三个点实现数组的复制
    let a = [10,20,30];
    let b = [...a]; //复制数组a中的所有元素赋给b
    a[2] = 300; //修改数组a中的⼀个元素值
    console.log(b); //数组b没有影响 [10, 20, 30]
    //使⽤三个点实现将数组转为参数序列。
    function demo(x,y,z){
        console.log(x,y,z); //10,20,300
    }
    demo(...a); //使⽤三个点将数组转换为参数序列
</script>
</body>
</html>

3、使⽤三个点(…)对剩余参数的处理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //在以前我们使⽤arguments来收集函数调⽤传递的任意数量参数。
    function sum(){
        let res = 0;
        //遍历所有参数
        for(let v of arguments){
            res += v; //累加
        }
        return res;
    }
    console.log(sum(10,20,30,40)); //100 调⽤上⾯函数可以传递很多参数
    //执⾏效果同时,使⽤三点来收集所有参数
    function sum2(...numbers){
        let res = 0;
        for(let v of numbers){
            res += v;
        }
        return res;
    }
    console.log(sum2(10,20,30,40));//100
</script>
</body>
</html>

剩余参数的处理实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //定义⼀个处理折扣的函数,第⼀个参数为折率,其余参数为价格
    function discount(rate,...prices){
        return prices.map(p => p*rate);
    }
    //计算0.68参数以外的其他价格,打完6.8折后的值。
    console.log(discount(0.68,125,98,246,50));//[85, 66.64, 167.28, 34]
    //有⼀条信息,内容为姓名、编号和数据
    const info = ["zhangsan","1002",12,23,45,34];
    //使⽤解构赋值
    const [name,id,...params] = info;
    console.log(name,id,params); //zhangsan 1002 [12, 23, 45, 34]
</script>
</body>
</html>

实例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>扩展运算符实例</title>
    <style>
        body{background-color: darkorange;}
        #hid{color:white;font-size:80px;text-align:center;}
        #hid span{
            margin:5px;
            cursor:pointer;
            display:inline-block;
            transsition:transform 0.25s;
        }
        /*定义⿏标移⼊的动画效果*/
        #hid span:hover{
            transform:translateY(-20px) rotate(10deg) scale(2);
        }
    </style>
</head>
<body>
<h1 id="hid">Hello ES6!</h1>
<script>
    //获取⻚⾯中h1元素节点
    const hid = document.querySelector("#hid");
    //获取节点中间的内容,作为参数调⽤下⾯函数,并将返回结果替换原先h1标签之间的内容中
    hid.innerHTML = wrapWithSpan(hid.textContent);
    //⾃定义函数
    function wrapWithSpan(str){
        //将内容使⽤map遍历,并未每个字符外添加span标签后合并返回。
        return [...str].map(v=>`<span>${v}</span>`).join("");
    }
</script>
</body>
</html>

总结

这里讲解了运算符的扩展相关内容,下一期讲解数值的扩展

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值