Добро пожаловать в синтаксис параметров REST. Это как оператор спреда!
5 Использование для оператора спреда
Лори ・ 10 июля ’19 ・ 3 мин Читает
… кроме нет.
Я хочу сказать заранее, что я не оправдываю повторное использование ... Символ на языке JavaScript. Но, надеюсь, этот пост поможет вам понять, как распространение и отдых отличаются, но похожи.
Вариант использования для отдыха
Допустим, вы хотите передать неизвестное количество аргументов функции. Это когда вы хотите использовать параметр REST!
function testRest(arg1, arg2, ...otherArgs) {
console.log(arg1) // 1
console.log(arg2) // 2
console.log(otherArgs) // [3, 4, 5]
}
testRest(1, 2, 3, 4, 5)
В этом примере arg1 и arg2 проходят через как ожидалось, тогда все дополнительные аргументы добавляются в Другие Аргс множество.
Одним из преимуществ является то, что Другие Аргс это действительно массив. Это означает, что все ваши функции массива доступны.
Вы можете посмотреть на количество аргументов внутри него.
function testRest(arg1, arg2, ...otherArgs) {
const numOfArgs = otherArgs.length() // 3
}
testRest(1, 2, 3, 4, 5)
Вы также можете манипулировать этим, используя функции прототипа массива. карта , фильтр , уменьшить , квартира , и т.д.
Единый дополнительный аргумент
Одна вещь, которую нужно помнить, это то, что Другие Аргс всегда будет создавать массив. Это означает, что один аргумент будет завершен в массиве.
function testRest(arg1, arg2, ...otherArgs) {
console.log(arg1) // 1
console.log(arg2) // 2
console.log(otherArgs) // [3]
}
testRest(1, 2, 3)
Кроме того, не включая какие -либо дополнительные аргументы приведут к пустому массиву.
function testRest(arg1, arg2, ...otherArgs) {
console.log(arg1) // 1
console.log(arg2) // 2
console.log(otherArgs) // []
}
testRest(1, 2)
Помните разрушение?
Если вам нужно быстрое обновление при назначении Destructuring, ознакомьтесь с этим постом.
3 мощные примеры назначения разрушения
Лори ・ 11 июня ’19 ・ 2 мин читать
Как выясняется, вы можете использовать деструктуризация и параметр остального вместе.
function testRest(...[first, second, third]) {
console.log(first) // 1
console.log(second) // 2
console.log(third) // 3
}
testRest(1, 2, 3)
Имейте в виду, что разрушение ожидает, что аргументы будут там. Если вы сломаете этот контракт, вы должны знать, чего ожидать.
Если вы не включите разрушенный ожидаемый аргумент, это приведет к неопределенной ссылке.
function testRest(...[first, second, third]) {
console.log(first) // 1
console.log(second) // 2
console.log(third) // undefined
}
testRest(1, 2)
Если вы включите аргумент, помимо того, что вы разрушили, этот аргумент будет отброшен.
function testRest(...[first, second, third]) {
console.log(first) // 1
console.log(second) // 2
console.log(third) // 3
// 4 is not destructured
}
testRest(1, 2, 3, 4)
Вывод
И там у тебя это есть! Как вы можете видеть в примерах выше основного различия между отдыхом и распространением – это местоположение.
Синтаксис спреда может появляться внутри функции или при вызове функции. Синтаксис параметров REST ограничен самой подписью функции. Имейте это в виду, если вы пытаетесь определить, что используется.
Надеюсь, это помогло вам лучше понять понятия.
Как всегда, если вы заинтересованы в таких понятиях, как этот, проверьте некоторые из этих постов:
Сплайсин! Кусочек! Стреляй, я имел в виду смену!
Лори ・ 30 июля ’19 ・ 4 мин Читает
Давайте плюществом – для … в противном
Лори ・ 16 июля ’19 ・ 4 мин Читает
Deep Vs мелкая копия – с примерами
Лори ・ 24 июля ’19 ・ 4 мин Читает
Оригинал: “https://dev.to/laurieontech/understanding-rest-parameter-syntax-1apn”