JavaScript
Rozwój JavaScriptu na przestrzeni czasu
Dostęp do oryginalnego artykułu znajdziesz na tej stronie.
1.1 Początek
JS Historical Development jest podzielony na dwie sekcje.
- Po pierwsze była **era przeglądarek, kiedy JavaScript próbował istnieć w przeglądarkach.
- Po drugie: Okresy ES6, ES7, ES8, ES9, ES10, ES11, ES12 po EcmaScript 5, kiedy JavaScript mógł działać poza przeglądarkami z Node.JS oraz na serwerach i komputerach stacjonarnych.
1.2 Era przeglądarek
Brenden Eich: jest twórcą języka programowania JavaScript. Opracował go w 1995 roku, pracując dla Netscape, czyli obecnie Mozilla. Z biegiem czasu jego nazwisko zostało zmienione na Mocha LiveScript JavaScript.
Doug Crockford: JSON (JavaScript Object Notation) powstał w 2002 roku. Ten format, będący podzbiorem XML, służy jako podstawa zarówno bezpośredniej obsługi JavaScript w języku, jak i interakcji z serwerem.
Jesse James Garrett: zdefiniował Ajax w artykule z 2005 roku. Podstawową techniką komunikacji aplikacji internetowej była komunikacja asynchroniczna z serwerem.
John Resig: w 2006 roku stworzył bibliotekę JQuery. Były to biblioteki zapewniające programistom abstrakcję eliminującą wszelkie niezgodności z przeglądarkami, spopularyzowane przez biblioteki takie jak Prototype, Dojo i Mootools.
HTML5: Flash dobiega końca. Kolejny przełom w JavaScript nastąpił, gdy twórcy technologii, tacy jak Steve Jobs i Mark Zuckerberg, oświadczyli, że nie będą obsługiwać urządzeń Flash w przeglądarkach i że przyszłość leży w HTML5, CSS3 i JavaScript.
Wraz z początkiem tego trendu zniknęły wszystkie wtyczki, które działały w przeglądarkach. Aplet Java i JavaFX, Adobe Flash i Microsoft Silverlight prawie zniknęły.
1.3. Okres ES (ES5, ES6, ES7, ES8, ES9, ES10, ES11, ES12)
NodeJS został stworzony w 2009 roku przez Ryana Dahla. Infrastruktura ta, zbudowana poprzez forkowanie kompilatora JavaScript przeglądarki Chrome, umożliwia działanie JS jako serwera, czyli poza przeglądarką. I od tego momentu JS zaczął biegać wszędzie. Zaczął pojawiać się wszędzie, nie mieszcząc się już w przeglądarce, która go stworzyła, a komitet zaczął się rozrastać w nieskończoność. Wymagania zaczęły się różnić. Dzięki temu rozróżnieniu zaczęto przekształcać język w sposób ewolucyjny.
EcmaScript (ES): podstawowy standard JavaScript. Od momentu powstania jako język oparty na przeglądarce, standard ten obejmuje ActionScript firmy Flash i JScript firmy Microsoft. Ale w końcu najlepsze cechy innych języków zostały włączone do JavaScriptu i zniknęły.
TC39: Komisja ds. rozwoju ES składa się z kilku członków pochodzących z twórców przeglądarek i dużych firm związanych z siecią.
Wersja: Co roku, zazwyczaj w czerwcu, publikowane jest nowe wydanie ES, a każdy rok jest oznaczony przez podwojenie numeru roku poprzedniego. Na przykład funkcje językowe ogłoszone w 2015 r. określa się jako ES6, funkcje językowe opublikowane w 2016 r. określa się jako ES7, a funkcje językowe wdrożone w 2019 r. określa się jako ES10. Zmiany językowe JS opublikowane w 2015 roku, ES6, były skrajnie odmienne i zaawansowane.
Poniżej uwzględniłem rozwój języka JS w oparciu o wersje EcmaScript;
1.3.1 ES6 (2015)
- niech i const
- Funkcje strzałek
- Zajęcia
- Parametry domyślne
- Literały szablonowe
- Niszczenie przydziałów
- Ulepszone literały obiektów
- Pętla for-of
- Obietnice
- Operator rozproszenia
- Zestaw/mapa
- Generatory
1.3.2 ES7 (2016)
- Tablica.prototyp.zawiera
- Operator potęgowania (**)
- Array.prototype.find i Array.prototype.findIndex
- Obiekt.getOwnPropertyDescriptors
1.3.3 ES8 (2017)
- Wypełnienie sznurkiem
- Obiekt (wartości, wpisy)
- Funkcje asynchroniczne
- Wspólna pamięć i atomy
1.3.4 ES9 (2018)
- Iteracja asynchroniczna
- Odpoczynek/rozprzestrzenianie
- Obietnica.prototyp.wreszcie
- Ulepszenia wyrażeń regularnych
1.3.5 ES10 (2019)
- Tablica (płaska, flatMap)
- Obiekt (z wpisów)
- Opcjonalne wiązanie zatrzaskowe
- Ciąg (trimStart, trimEnd)
- Symbol (opis)
- stabilna tablica (sortowanie)
- Dobrze sformułowany JSON (stringify)
- Pole statyczne
1.3.6. ES11 (2020)
- BigInt
- Import dynamiczny
- Zerowe łączenie
- Opcjonalne łączenie łańcuchowe
- Obietnica. Wszystko rozstrzygnięte
- Ciąg#dopasuj wszystko
- globalThis
- Eksport przestrzeni nazw modułu
- Dobrze zdefiniowany porządek
- import.meta
- pola prywatne(#)
1.3.7 ES12 (2021)
- Separatory numeryczne
- String.prototype.replaceAll
- Promise.any() i AggregateError
- Operatory przypisania logicznego
- Metody i akcesoria klas prywatnych
1.3.7 ES13 (2022)
- Oczekuj na operatora na najwyższym poziomie
- Deklaracje pól klas
- Prywatne metody i pola
- Pola klas statycznych i prywatne metody statyczne
- Indeksy dopasowania RegExp
- Ergonomiczne kontrole marki dla pól prywatnych
- Funkcja .at() do indeksowania
- Funkcja czasowa
Aby lepiej zrozumieć rodzaje przykładowych aplikacji, które wymieniłem powyżej, możesz pobrać i przeczytać ebook pdf