美文网首页JS
JS中三个点(...)是什么鬼?

JS中三个点(...)是什么鬼?

作者: 羞羞的王大锤 | 来源:发表于2020-03-10 23:52 被阅读0次

    我们在看js代码时经常会出现(...)三个点的东西,它究竟是什么意思?又有何用处?
    下面我就给大家分享一下三个点的那些事

    什么意思?

    三个点(...)真名叫扩展运算符,是在ES6中新增加的内容,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开

    字面量一般指[1,2,3]或者{name:'chuichui'}这种简洁的构造方式,多层嵌套的数组和对象三个点就无能为力了

    说白了就是把衣服脱了,不管是大括号([])、花括号({}),统统不在话下,全部脱掉脱掉!

    // 数组
    var number = [1,2,3,4,5,6]
    console.log(...number) //1 2 3 4 5 6
    //对象
    var man = {name:'chuichui',height:176}
    console.log({...man}) / {name:'chuichui',height:176}
    

    有什么用?

    它的用处很广泛,我们随处都可以看到,下面是几个常见的例子

    复制用它

    //数组的复制
    var arr1 = ['hello']
    var arr2 =[...arr1]
    arr2 // ['hello']
    //对象的复制
    var obj1 = {name:'chuichui'}
    var obj2 ={...arr}
    ob12 //  {name:'chuichui'}
    

    合并用它

    //数组的合并
    var arr1 = ['hello']
    var arr2 =['chuichui']
    var mergeArr = [...arr1,...arr2]
    mergeArr  // ['hello','chuichui']
    // 对象分合并
    var obj1 = {name:'chuichui'}
    var obj2 = {height:176}
    var mergeObj = {...obj1,...obj2}
    mergeObj // {name: "chuichui", height: 176}
    

    字符转数组用它

    var arr1 = [...'hello']
    arr1 // ["h", "e", "l", "l", "o"]
    

    函数传参用它

    可以和正常的函数相结合,灵活使用

    function f(v,w,x,y,z){ }
    var args = [2,3]
    f(1,...args,4,...[5])
    

    当我们想把数组中的元素迭代为函数参数时,用它!

    function f(x,y,z){}
    var args = [1,2,3]
    f(...args)
    
    // 以前的方法
    f.apply(null,args);
    

    感受🤛

    用了三个点感觉一切都可以省略,一切尽在不言中,你慢慢品☕️

    最后 🙌

    好啦,以上就是我本次分享的全部内容啦,如果你觉得我的文章对你有一丢丢帮助,那么请不要吝啬你的赞👍哦,阿门~

    相关文章

      网友评论

        本文标题:JS中三个点(...)是什么鬼?

        本文链接:https://www.haomeiwen.com/subject/agqodhtx.html