剩餘引數與展開運算子

2021-10-22 02:01:21 字數 2520 閱讀 1434

認識剩餘引數

const add =

(x, y, z,

...args)

;

剩餘引數的本質

剩餘引數永遠是個陣列,即使沒有值,也是空陣列

箭頭函式的剩餘引數

箭頭函式的引數部分即使只有乙個剩餘引數,也不能省略圓括號

使用剩餘引數替代 arguments 獲取實際引數

剩餘引數的位置

剩餘引數只能是最後乙個引數,之後不能再有其他引數,否則會報錯

與解構賦值結合使用

剩餘引數不一定非要作為函式引數使用

const

[num,

...args]=[

1,2,

3,4]

;

必須是最後乙個

const

func=(

[num,

...args]

)=>

;func([

1,2,

3]);

物件的解構賦值與剩餘元素的結合使用

const=;

console.

log(x, y, z)

;// 1 2

const

func=(

)=>

;func()

;

陣列展開運算子的基本用法

console.

log(math.

min(

...[3,

2,1]

));

複製陣列

const a =[1

,2];

const c =

[...a]

;

合併陣列

const a =[1

,2];

const b =[3

];const c =[4

,5];

console.

log(

[...a,

...b,

...c]);

console.

log([1

,...a,2,

...b,

...c,3]

);

字串轉為陣列

字串可以按照陣列的形式展開

console.

log(

[...

'jeck'])

;

常見的類陣列轉化為陣列

arguments

function

func()

func(1

,2);

nodelist

console.

log(

[...document.

queryselector

('p')]

);

展開物件

把屬性羅列出來,用逗號分隔,放到乙個 {} 中,構成新物件 ;

console.

log(

;const pen =

console.

log();

空物件的展開

如果展開乙個空物件,則沒有任何效果

console.

log(})

;

非物件的展開

如果展開的不是物件,則會自動將其轉為物件,再將其屬性羅列出來

// 以下轉換均轉為空物件

console.

log();

console.

log();

console.

log();

console.

log(

);

如果展開的運算子後面是字串,它會自動轉成乙個類似陣列的物件,因此返回的不是空物件

console.

log();

// console.

log(

[...

'name'])

;// ["n", "a", "m", "e"]

console.

log(

...'name');

// n a m e

陣列在物件中的展開

console.

log(

);

物件中物件屬性的展開

不會展開物件中的物件屬性

複製物件

const a =

c =

使用者引數和預設引數

const

loguser

= userparam =>

const

=}

ES6 剩餘引數 展開運算子

在原來的語法當中如果你要傳入引數並且全部獲取執行的話,很多情況下我們一般用arguments,但用arguments時會出現很多問題 因此在es6 現了剩餘引數 剩餘引數專門用於收集末尾所有引數,將其放置到乙個形引數組中。function sum args return sum console.lo...

展開運算子spread和剩餘運算子Rest

展開運算子和剩餘運算子 展開運算子是三個點你 可以將乙個陣列轉為用逗號分隔的引數序列。說的通俗易懂點,就好像化骨綿掌,把乙個大元素給打散成乙個個單獨的小元素。demo 1 傳遞資料代替多個字串的形式 function test a,b,c var arr 1,2,3 test arr demo2 將...

展開運算子

複製陣列 錯誤方法 arr2 arr1 console.log arr1 arr2 true 傳統方法 let arr3 arr1.concat console.log arr1 arr3 false 新方法 let arr1 1,2,3 let arr2 4,5,6,arr1 console.lo...