三个点(...)是扩展运算符,是ES6语法,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开说白了就是把数组中大括号([])、对象中花括号({})去掉,下面我们就来说一说关于javascript深入理解作用域?我们一起去了解并探讨一下这个问题吧!

javascript深入理解作用域(JavaScript中三个点...)

javascript深入理解作用域

三个点(...)是扩展运算符,是ES6语法,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开。说白了就是把数组中大括号([])、对象中花括号({})去掉!

//数组 var nums = [1, 2, 3, 4, 5] console.log(...nums) //1 2 3 4 5 //对象 var person = { name: 'A', age: 30 } console.log({ ...person }) // {name:'A',age:30}

它有什么用呢?

//数组的复制 var arr1 = ['hello'] var arr2 = [...arr1] console.log(arr2) // ['hello'] //对象的复制 var obj1 = { name: 'A' } var obj2 = { ...obj1 } console.log(obj2) // {name:'A'}

//数组的合并 var arr1 = ['hello'] var arr2 = ['world'] var mergeArr = [...arr1, ...arr2] console.log(mergeArr) // ['hello','world'] // 对象合并 var obj1 = { name: 'A' } var obj2 = { age: 30 } var mergeObj = { ...obj1, ...obj2 } console.log(mergeObj) // {name: "A", age: 30}

var arr1 = [...'hello'] console.log(arr1) // ["h", "e", "l", "l", "o"]

,