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