Jak co roku do standardu ECMAScript są dodawane nowe funkcjonalności, które pozwalają rozwijać język JavaScript. Już teraz mamy informacje na temat nowości na przyszły rok. Co nas zatem czeka nowego w roku 2021?
Wszystko to, co opisuję, można już testować w Chrome
String.replaceAll()
String.replaceAll() jest rozszerzeniem istniejącej już metody String.replace(). Do tej pory istniejąca metoda pozwalała zmienić pierwsze wystąpienie szukanego znaku w tekście.
Jak potrzebowaliśmy zmienić wszystkie wystąpienia danego znaku, to musieliśmy skorzystać z Regex'a.
Teraz będzie to łatwiejsze do zrobienia z nową metodą.
Promise.any()
Mój faworyt, jeżeli chodzi o nowe funkcjonalności. Promise.any() jest ostatnią metodą, jaka brakowała do czterech metod zarządzania większą ilością Promise'ów (dokładnie o tym, jakie metody są dostępne i jak z nich skorzystać dowiesz się tutaj). Promise.any() zwraca nam pierwszą wartość, która rozwiąże się poprawnie z tablicy przekazanych Promise'ów. Najlepiej pokazuje to przykład:
Numeric separators
Następna funkcjonalność jest ciekawostką, którą będzie można wykorzystywać przy bardzo dużych liczbach, a mianowicie separator numeryczny. Jest to znak podłogi _, który pozwala na rozdzielenie cyfr w liczbie, ale nie ma wpływu na jej wartość. Można go wykorzystać do dużych liczb by od razu widzieć rząd wielkości np. 1_000_000 jest łatwiej odczytać niż 1000000. To, co mi się najbardziej podoba to możliwość wykorzystania tego do zapisu binarnego, heksadecymalnego i ósemkowego.
Logical Assignment Operators
Na sam koniec funkcjonalność, która wygląda dziwnie na pierwszy rzut oka - jest to grupa 3 nowych operatorów logiczno-przypisujących:
- ||=
- &&=
- ??=
Zapis jest mało czytelny na początku i w sumie nie za bardzo wiadomo, o co chodzi. Jednak jak się zrozumie idee działania, to mogą to być całkiem przydatne operatory.
Zacznijmy od pierwszego operatora - operator przypisania OR a ||= b. Jak się go rozpisze to mamy taki zapis a || a = b. Żeby to zrozumieć musimy pamiętać, jak działa operator OR - a || b, b będzie sprawdzone tylko, jeżeli pierwszy argument jest fałszywy. W przypadku przypisania OR, przypisanie wystąpi tylko wtedy kiedy a będzie fałszywe.
Teraz możemy omówić pozostałe. Operator przypisania && operuje na działaniu operatora AND. Zapis a &&= b można rozpisać jako a && a=b - czyli przypisanie nastąpi tylko, kiedy zmienna a będzie się rzutowała na wartość true.
Na sam koniec operator, który wykorzystuje nullish coalescing - a??=b. Jak sobie go rozpiszemy to dostaniemy coś takiego a ?? a=b. Czyli tutaj przypisanie nastąpi tylko, jeżeli zmienna a ma wartość null i undefined.
Słyszałeś o tych funkcjonalnościach wcześniej? Co o nich myślisz? Napisz komentarz lub napisz bezpośrednio do mnie na maila :).