Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 7794|Odpowiedź: 0

[JavaScript] es6 Operator rozszerzenia Trzy kropki (...) )

[Skopiuj link]
Opublikowano 19.06.2020 12:31:11 | | |
znaczenie

Operator rozwinięcia (spread) to trzy kropki (...) )。 To jak odwrotność parametru spoczynkowego, zamieniający tablicę w sekwencję parametrów oddzieloną przecinkami.



Ten operator jest głównie używany do wywołań funkcji.



W powyższym kodzie array.push(...) przedmioty) oraz dodawanie(...) liczby), które są wywołaniami funkcji i wykorzystują operatory rozszerzenia. Ten operator zamienia tablicę w ciąg parametrów.
Operatory rozszerzenia można stosować w połączeniu z parametrami funkcji normalnych, co jest bardzo elastyczne.



Zastosowanie metody dla alternatywnych tablic

Ponieważ operator rozszerzenia może rozwijać tablicę, nie ma potrzeby stosowania metody apply, aby przekształcić tablicę w argument do funkcji.



Oto praktyczny przykład operatora rozszerzenia zastępującego metodę stosowania, stosując Math.max metodę uproszczającą zapis największego elementu tablicy.



Powyższy kod mówi, że ponieważ JavaScript nie udostępnia funkcji do znalezienia największego elementu tablicy, można użyć Math.max funkcji, aby przekształcić tablicę w sekwencję parametrów, a następnie znaleźć maksymalną wartość. Z operatorem rozszerzenia możesz korzystać z Math.max bezpośrednio.
Innym przykładem jest dodanie tablicy do ogona innej tablicy za pomocą funkcji push.



W metodzie zapisu ES5 powyższego kodu parametry metody push nie mogą być tablicami, więc musimy stosować metodę push elastycznie za pomocą metody apply. Za pomocą operatora rozszerzenia tablica może być przekazywana bezpośrednio do metody push.
Oto kolejny przykład.



Rozszerzenie zastosowania operatorów

(1) Tablice scalania

Operator rozszerzenia oferuje nowy sposób zapisu kombinacji liczb.



(2) połączone z rozłożonym przypisaniem

Operatory rozszerzenia można łączyć z dekonstrukcyjnymi przypisaniami, aby generować tablice.



Jeśli używasz operatora rozszerzenia do przypisywania tablicy, można go umieścić tylko na ostatniej cyfrze parametru, w przeciwnym razie zostanie zgłoszony błąd.



(3) Wartość zwrotu funkcji

Funkcje JavaScript mogą zwracać tylko jedną wartość, a jeśli trzeba zwrócić wiele wartości, to tylko tablice lub obiekty. Operatory rozszerzenia stanowią obejście tego problemu.



Powyższy kod pobiera linię danych z bazy danych, rozszerza operator i przekazuje ją bezpośrednio konstruktorowi Date.

(4) Struna

Operatory rozszerzenia mogą także zamieniać ciągi znaków w rzeczywiste tablice.



Powyższe zapisy mają ważną zaletę, a mianowicie potrafi poprawnie rozpoznawać 32-bitowe znaki Unicode.



Pierwszym sposobem napisania powyższego kodu jest JavaScript, który rozpoznaje 32-bitowe znaki Unicode jako 2 znaki, i nie ma problemu z operatorami rozszerzenia. Funkcja poprawnie zwracająca długość ciągu można zapisać następująco:



To problem każdej funkcji polegającej na manipulacji 32-bitowymi znakami Unicode. Dlatego najlepiej jest przepisać je wszystkie za pomocą operatorów rozszerzenia.



W powyższym kodzie, jeśli nie używasz operatora rozszerzenia, operacja odwrócenia ciągu jest nieprawidłowa.

(5) Obiekty implementujące interfejs Iteratora

Każdy obiekt w interfejsie Iteratora może zostać przekształcony w prawdziwą tablicę za pomocą operatora rozszerzenia.



W powyższym kodzie metoda querySelectorAll zwraca obiekt nodeList. Nie jest to tablica, lecz obiekt przypominający tablicę. W takim przypadku operator rozszerzenia może przekształcić ją w prawdziwą tablicę, ponieważ obiekt NodeList implementuje interfejs Iterator.
Dla tych obiektów przypominających tablice, które nie mają wdrożonego interfejsu Iteratora, operator rozszerzenia nie może przekształcić ich w prawdziwą tablicę.



W powyższym kodzie arrayLike jest obiektem przypominającym tablicę, ale bez wdrożenia interfejsu Iteratora operator rozszerzenia zgłosi błąd. W takim przypadku możesz użyć metody Array.from, aby przekonwertować arrayLike na prawdziwą tablicę.

(6) Struktury odwzorowania i zbiorów, funkcje generatora

Operator rozszerzenia wewnętrznie wywołuje interfejs Iteratora struktury danych, więc każdy obiekt z interfejsem Iteratora może używać operatora rozszerzenia, takiego jak struktura Map.



Gdy funkcja Generator działa, zwraca obiekt przesuwający, więc można również użyć operatorów rozszerzenia.



W powyższym kodzie zmienna go jest funkcją generatora, a po wykonaniu zwraca obiekt przesuwający, a wykonanie operatora rozszerzenia na tym obiekcie przekształca wartości uzyskane z wewnętrznego przesuwania w tablicę.
Jeśli użyjesz operatora rozszerzenia dla obiektu bez interfejsu iteratora, błąd zostanie zgłoszony.





Poprzedni:Implementacja Vue+ElementUI
Następny:Problem z wydaniem projektu Angular
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com