Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 7794|Відповідь: 0

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

[Копіювати посилання]
Опубліковано 19.06.2020 12:31:11 | | |
значення

Оператор розкладу (спред) — це три крапки (...) )。 Це як обернене до параметра спокою, перетворюючи масив на послідовність параметрів, розділену комами.



Цей оператор переважно використовується для викликів функцій.



У наведеному вище коді array.push(...) items) та add(...) числа), обидва з яких є викликами функцій, і обидві використовують оператори розширення. Цей оператор перетворює масив на послідовність параметрів.
Оператори розширення можуть використовуватися у поєднанні з параметрами нормальної функції, що є дуже гнучким.



Застосовувати метод для альтернативних масивів

Оскільки оператор розширення може розгортати масив, немає потреби використовувати метод apply для перетворення масиву на аргумент функції.



Ось практичний приклад оператора розширення, який замінює метод застосування, застосовуючи 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 реалізує інтерфейс ітератора.
Для тих масивоподібних об'єктів, які не мають розгорнутого інтерфейсу Ітератора, оператор розширення не може перетворити їх на реальний масив.



У наведеному вище коді arrayLike є об'єктом, подібним до масиву, але без розгортання інтерфейсу ітератора оператор розширення повідомляє про помилку. У цьому випадку можна використати метод Array.from для конвертації arrayLike у реальний масив.

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

Оператор розширення внутрішньо викликає інтерфейс ітератора структури даних, тому будь-який об'єкт із інтерфейсом ітератора може використовувати оператор розширення, наприклад структуру Map.



Коли виконується функція генератора, вона повертає об'єкт траверсера, тому також можна використовувати оператори розширення.



У наведеному вище коді змінна go є функцією генератора, і після виконання вона повертає об'єкт траверсера, і виконання оператора розширення на цьому об'єкті перетворює значення, отримані при внутрішньому обході, у масив.
Якщо ви використовуєте оператор розширення для об'єкта без інтерфейсу ітерації, буде зафіксовано помилку.





Попередній:Реалізація Vue+ElementUI
Наступний:Проблема з випуском проєкту Angular
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com