沐鳴平台首頁_JS中三個點(…)

我們在看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);

站長推薦

1.雲服務推薦: 國內主流雲服務商,各類雲產品的最新活動,優惠券領取。地址:阿里雲騰訊雲華為雲

2.廣告聯盟: 整理了目前主流的廣告聯盟平台,如果你有流量,可以作為參考選擇適合你的平台點擊進入

鏈接: http://www.fly63.com/article/detial/8155