В javascript есть много ошибочных понятий, таких как spread и rest, они выглядят одинаково или идентично, но их поведение отличается. Сегодня в этой статье мы узнаем, в чем основное различие между rest и spread.
Spread & Rest syntex...array
let array1 = [1,2]
let array2 = [3,4]
// we want to concat two array
// we can concat two way like
let array3 = [...array1, ...array2]
// another way
let array3 = array1.concat(array2)
Первый пример — конкат через
Вы можете использовать оператор spread, например, у вас есть 10 массивов, которые вы можете объединить через spread.
Второй пример — встроенный javascript.
Вы можете использовать его для массива строк.
let strArray = [..."developer life is tough"]
// output like devide all letter and space like array just try your self
Самая важная вещь в массиве, вы можете скопировать массив, это называется неглубокое копирование.
Только имейте в виду, что при этом клонируется только первый уровень. Это работает с примитивными типами, такими как число и строка, но не с объектами.
let arrToClone = [1,2,3,4,5,6,7,8]
let shallowCopy = [...arrToClone]
Давайте разберемся с использованием разворачивания в объекте.
let obj1 ={
age: 23,
profession : 'developer'
}
let obj2 ={
language: 'javascrip',
girlfriend : false
}
let obj3 = {...obj1, ... obj2}
console.log(obj3)
// It will marge two object
// we can shallow copy with object but conditions is obly first lavel like array
let shallowCopyObj = {...obj1}
И последнее — функция.
В javascript функцию можно использовать двумя способами.
Отдых
//this it rest
function exp(x,y,...other){
return other;
}
// rest operator
exp(1,2,3,4,5,6,7,8,9)
// return [3,4,5,6,7,8,9]
Развернуть
function exp2(a,b,c){
return a+b+c
}
let number = [1,2,3]
// spread operator
exp2(...number)
Наконец, мы рассмотрим основные различные операции между режимами покоя и разворота.
Резюме
-
когда вы используете (…) на параметре функции, это называется Rest
-
когда вы используете (…) на аргументе функции называется Spread
-
Оператор Spread помогает объединить объект и массив, но условно.😄