Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 7794|Ответ: 0

[JavaScript] es6 Оператор расширения Три точки (...) )

[Скопировать ссылку]
Опубликовано 19.06.2020 12:31:11 | | |
значение

Оператор разложения (спред) состоит из трёх точек (...) )。 Это как обратный параметр покоя, превращающий массив в последовательность параметров с разделёнными запятами.



Этот оператор в основном используется для вызовов функций.



В приведённом выше коде array.push(...) items) и add(...) числа), оба из которых являются вызовами функций, и оба используют операторы расширения. Этот оператор превращает массив в последовательность параметров.
Операторы расширения могут использоваться в сочетании с параметрами нормальной функции, что очень гибко.



Метод применения для альтернативных массивов

Поскольку оператор расширения может расширять массивы, нет необходимости использовать метод применения для превращения массива в аргумент функции.



Вот практический пример, когда оператор расширения заменяет метод применения, применяя Math.max метод для упрощения записи наибольшего элемента массива.



Вышеуказанный код говорит, что поскольку JavaScript не предоставляет функцию для поиска наибольшего элемента массива, Math.max можно применить только для превращения массива в последовательность параметров и получения максимального значения. С оператором расширения вы можете использовать Math.max напрямую.
Другой пример — добавление массива в хвост другого массива с помощью push-функции.



В методе записи ES5 по вышеуказанному коду параметры метода push не могут быть массивы, поэтому мы должны использовать метод push гибко через метод применения. С помощью оператора расширения массив можно передавать напрямую в метод push.
Вот ещё один пример.



Расширить применение операторов

(1) Слияние массивов

Оператор расширения предоставляет новый способ записи комбинации чисел.



(2) в сочетании с деконструированным присвоением

Операторы расширения могут быть комбинированы с деконструированными назначениями для генерации массивов.



Если использовать оператор расширения для назначения массивов, его можно разместить только на последней цифре параметра, иначе будет сообщена ошибка.



(3) Возвращаемое значение функции

Функции JavaScript могут возвращать только одно значение, а если нужно вернуть несколько значений — только массивы или объекты. Операторы расширения предоставляют обходной путь для решения этой проблемы.



Вышеуказанный код берёт строку данных из базы данных, расширяет оператор и передаёт её непосредственно конструктору Date.

(4) Струна

Операторы расширения также могут превращать строки в вещественные массивы.



Приведённый выше текст имеет важное преимущество — он может правильно распознавать 32-битные символы Unicode.



Первый способ написания вышеуказанного кода — JavaScript распознаёт 32-битные символы Unicode как 2 символа, и с операторами расширения проблем нет. Функцию, которая правильно возвращает длину строки, можно записать следующим образом:



Это задача для любой функции, связанной с управлением 32-битными символами Unicode. Поэтому лучше переписать их все с помощью операторов расширения.



В приведённом выше коде, если не использовать оператор расширения, операция обратного обращения строк некорректна.

(5) Объекты, реализующие интерфейс итератора

Любой объект в интерфейсе итератора может быть преобразован в истинный массив с помощью оператора расширения.



В приведённом выше коде метод querySelectorAll возвращает объект nodeList. Это не массив, а объект, похожий на массив. В этом случае оператор расширения может превратить его в реальный массив, поскольку объект NodeList реализует интерфейс Iterator.
Для тех объектов, похожих на массивы, у которых нет интерфейса Iterator, оператор расширения не может превратить их в реальный массив.



В приведённом выше коде arrayLike является объектом, похожим на массив, но без развертывания интерфейса Iterator оператор расширения сообщает об ошибке. В этом случае можно использовать метод Array.from для преобразования arrayLike в реальный массив.

(6) Структуры отображения и множеств, генераторные функции

Оператор расширения внутри вызывает интерфейс итератора структуры данных, поэтому любой объект с интерфейсом итератора может использовать оператор расширения, например структуру Map.



Когда функция генератора выполняется, она возвращает объект траверсера, поэтому можно использовать операторы расширения.



В приведённом выше коде переменная go — это функция генератора, и после выполнения она возвращает объект-траверсер, и выполнение оператора расширения на этом объекте обхода преобразует значения, полученные при внутреннем обходе, в массивы.
Если вы используете оператор расширения для объекта без интерфейса итератора, ошибка будет зафиксирована.





Предыдущий:Реализация Vue+ElementUI
Следующий:Проблема выпуска проекта Angular
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com