JavaScript
![]() Logo języka | |
Pojawienie się |
4 grudnia 1995; około 29 lat temu[1] |
---|---|
Paradygmat |
Język skryptowy wieloparadygmatowy (obiektowy, funkcyjny, imperatywny) |
Typowanie | |
Implementacje |
SpiderMonkey, V8, JavaScriptCore, Chakra, Rhino, Carakan, KJS |
Aktualna wersja stabilna |
ECMAScript 2022[2] (czerwiec 2021) |
Twórca | |
Platforma sprzętowa | |
Strona internetowa |
JavaScript, w skrócie JS – skryptowy język programowania, stworzony przez firmę Netscape, najczęściej stosowany na stronach internetowych. Twórcą JavaScriptu jest Brendan Eich[3]. W połowie lat 90. XX wieku organizacja ECMA wydała na podstawie JavaScriptu standard języka skryptowego o nazwie ECMAScript, aktualnie rozwijaniem tego standardu zajmuje się komisja TC39[4].
Zastosowanie
Najczęściej spotykanym zastosowaniem języka JavaScript są strony internetowe. Skrypty te służą najczęściej do zapewnienia interakcji poprzez reagowanie na zdarzenia, walidacji danych wprowadzanych w formularzach lub tworzenia złożonych efektów wizualnych. Skrypty JavaScriptu uruchamiane przez strony internetowe mają znacznie ograniczony dostęp do komputera użytkownika. Po stronie serwera JavaScript może działać w postaci node.js lub Ringo[5].
W języku JavaScript można także pisać pełnoprawne aplikacje. Fundacja Mozilla udostępnia środowisko złożone z technologii takich jak XUL, XBL, XPCOM oraz JSLib. Umożliwiają one tworzenie korzystających z zasobów systemowych aplikacji o graficznym interfejsie użytkownika dopasowującym się do danej platformy. Przykładem aplikacji napisanych z użyciem JS i XUL może być klient IRC o nazwie ChatZilla, domyślnie dołączony do pakietu Mozilla. Microsoft udostępnia biblioteki umożliwiające tworzenie aplikacji JScript jako część środowiska Windows Scripting Host. Ponadto JScript.NET jest jednym z podstawowych języków środowiska .NET. Istnieje także stworzone przez IBM środowisko SashXB dla systemu Linux, które umożliwia tworzenie w języku JavaScript aplikacji korzystających z GTK+, GNOME i OpenLDAP. Platforma Node.js umożliwia pisanie aplikacji wiersza poleceń oraz aplikacji serwerowych. Node.js używany jest także w środowisku Electron, który umożliwia pisanie aplikacji GUI. Język JavaScript używany jest także na urządzeniach internetu rzeczy, robotów czy układów takich jak Arduino poprzez bibliotekę Johnny-Five[6].
Historia
Wersja | Wydana | Zmiany[7] |
---|---|---|
1 | czerwiec 1997 | |
2 | czerwiec 1998 | Głównie korekta redaktorska[a] |
3 | grudzień 1999 | Wyrażenia regularne, obsługa wyjątków, nowe rodzaje pętli, literały tablic i obiektów |
4 | porzucona | Klasy, jawna kontrola dostępu, alternatywne dla DOM wbudowane wsparcie dla XML[b] |
5 | grudzień 2009 | Tryb „use strict”, obsługa JSON |
6 – 2015[8] | czerwiec 2015 | Klasy, moduły, iterator for/of, kolekcje, tablice typowane, proxies (meta obiekty), wyjaśnia wiele niejednoznaczności z wersji 3 |
7 – 2016[9] | czerwiec 2016 | Operator potęgowy – **, Array.prototype.includes |
8 – 2017[10] | czerwiec 2017 | funkcje async/await, String.prototype.padStart/padEnd, Object.values/entries |
9 – 2018[11] | czerwiec 2018 | Asynchroniczne iteratory, Rest/Spread dla właściwości obiektów, nowe funkcje wyrażeń regularnych, funkcja finally dla obietnic |
10 – 2019Błąd w przypisach: Brak znacznika zamykającego </ref> po otwartym znaczniku <ref> BŁĄD PRZYPISÓW
|
czerwiec 2020 | Dodanie operatora null’owego scalania, operatora opcjonalnego dostępu, wprowadzono primityw BigInt |
12 – 2021[2] | czerwiec 2021 | Możliwość używania separatorów liczbowych dla literałów liczbowych, możliwość sprawdzenia pustości lub braku określenia wartości zmiennej, funkcja any dla obietnic |
W 1996 r. organizacja ECMA rozpoczęła pracę nad specyfikacją języka JavaScript pozbawioną odniesień na temat interpretującego kod środowiska. Język opisany w standardzie ECMA-262 został nazwany ECMAScript. Od tego momentu nazwa JavaScript oznacza jedynie jeden z nadzbiorów języka ECMAScript. Pierwsza wersja standardu była bliska JavaScriptowi w wersji 1.1. Trzecia jako pierwsza rozszerzyła istniejące implementacje. Wersja ES4 została całkowicie porzucona przez przeglądarki internetowe, korzystał z niej jedynie język ActionScript dla platformy Flash. Od wersji ES5 przeglądarki na bieżąco implementują funkcje dodawane do standardu, często także, gdy są jeszcze propozycjami.
Dialekty
Od czasu powstania JavaScriptu opracowywane były różne jego odmiany interpretowane za pomocą osobnych silników. Oprócz implementacji wprowadzonych do przeglądarek internetowych należy do nich ActionScript aplikacji Adobe Flash oraz UnityScript w silniku Unity (nie jest już on obsługiwany od wersji 2018.2[12]).
Wersja | Wydana | Okoliczności wydania | Ważniejsze rozszerzenia implementowanej specyfikacji[c][13] | ![]() przeg. |
![]() spec. |
---|---|---|---|---|---|
1.0 | marzec 1996 | NN 2.0 | brak | ||
1.1 | sierpień 1996 | Klasy typów podstawowych, konstruktory, prototypy | NN 3.0 | brak | |
1.2 | czerwiec 1997 | Klasa zdarzenia | NN 4.0 | brak[d] | |
1.3 | październik 1998 | NN 4.06 | 2 | ||
1.4 | ? | Dostępna jedynie po stronie serwera (np. Netscape Enterprise Server). | 2 | ||
1.5 | listopad 2000 | Stałe, interfejs DOM poziom pierwszy i drugi | M 0.6 | 3 | |
1.6 | listopad 2005 | Mechanizm E4X | Fx 1.5 | 3 | |
1.7 | październik 2006 | Funkcje-iteratory, wielokrotne przypisania | Fx 2.0 | 3 | |
1.8 | czerwiec 2008 | domknięcia wyrażeń, wyrażenia generujące | Fx 3.0 | 3 |
Wersja | Wydana | Okoliczności wydania | Ważniejsze rozszerzenia implementowanej specyfikacjiBłąd w przypisach: Brak znacznika zamykającego </ref> po otwartym znaczniku <ref> BŁĄD PRZYPISÓW . W XHTML nie można używać argumentu language w znaczeniu określenia wersji języka JS (atrybut, jeżeli jest użyty, powinien przyjąć dwuznakowe wartości opisane standardem ISO 639, np. EN, DE, PL).
|
<script type="text/javascript">
/* <![CDATA[ */
alert(12 > 6);
/*]]> */</script>
|
---|---|---|---|---|
Zewnętrzne skrypty dodawane są także przy użyciu powyższego znacznika, uwzględniając jedynie parametr src z nazwą pliku zawierającego kod skryptu. Typ MIME dla samodzielnych plików JavaScript to application/javascript lub przestarzały text/javascript [14].
|
<script type="text/javascript" src="code.js"></script>
|
Kompilatory
Przeglądarki oraz język JavaScript stały się platformą do obsługi innych języków. Istnieją kompilatory, które konwertują pliki innego języka na JavaScript. Z najbardziej znanych można wymienić:
Istnieją także transpilatory nowszej wersji języka, na wersje starsze, które będą obsługiwane przez większą liczbę przeglądarek. Dzięki temu można korzystać z nowości, dodanych do języka zanim zostaną dodane przez przeglądarki. Przykładem takiego narzędzia jest Babel.
Zobacz też
- Składnia Javascriptu
- WebAssembly
- JSON (JavaScript Object Notation)
- Szczególne zastosowania JavaScriptu:
- DOM – obiektowy model dokumentu
- DHTML – modyfikacja elementów dokumentu
- XMLHttpRequest – pobieranie zewnętrznych dokumentów
Uwagi
- ↑ Przyczyną były prace nad ustanowieniem ECMAScript 2 normą ISO 16262.
- ↑ Dotychczas opracowywane jako osobny standard ECMA-357.
- ↑ Lub poprzedniej wersji implementacji, jeżeli specyfikacji ECMAScript jeszcze nie wydano.
- ↑ Wersja ta została wydana, zanim ECMA ukończyła pierwszą specyfikację. Mimo to jest z nią częściowo zgodna.
Przypisy
- ↑ Informacja prasowa – „Netscape and Sun announce JavaScript”. (ang.).
- ↑ a b ECMAScript® 2021 Language Specification. 262.ecma-international.org. [dostęp 2021-08-07]. (ang.).
- ↑ Paul Krill: JavaScript founder Brendan Eich: WebAssembly is a game-changer. InfoWorld, 2016-03-10. [dostęp 2016-12-21]. (ang.).
- ↑ Standard ECMA-262. www.ecma-international.org. [dostęp 2016-12-29].
- ↑ Ringo.
- ↑ Johnny-Five: The JavaScript Robotics & IoT Platform.
- ↑ JavaScript 2.0: Evolving a Language for Evolving Systems.
- ↑ ECMAScript 2015 Language Specification – ECMA-262 6th Edition [online], www.ecma-international.org [dostęp 2018-04-15] (ang.).
- ↑ ECMAScript® 2016 Language Specification [online], www.ecma-international.org [dostęp 2018-04-15] .
- ↑ ECMAScript® 2017 Language Specification [online], www.ecma-international.org [dostęp 2018-04-15] .
- ↑ ECMAScript® 2018 Language Specification [online], www.ecma-international.org [dostęp 2019-06-19] .
- ↑ UnityScript’s long ride off into the sunset. [dostęp 2019-05-19]. (ang.).
- ↑ Wersja 1.1 – Features added after version 1,
- Wersja 1.2 – Feature Summary,
- Wersja 1.3 – New Features in this Release,
- Wersja 1.5 – New features in JavaScript 1.5,
- Wersja 1.6 – New in JavaScript 1.6,
- Wersja 1.7 – New in JavaScript 1.7,
- Wersja 1.8 – New in JavaScript 1.8.
- ↑ B. Hoehrmann , Scripting Media Types, RFC 4329, IETF, kwiecień 2006, DOI: 10.17487/RFC4329, ISSN 2070-1721, OCLC 943595667 (ang.).
Linki zewnętrzne
- Specyfikacja języka ECMAScript
- Zasoby Mozilla Developer Network na temat JavaScriptu
- Włączenie obsługi JavaScript w przeglądarkach internetowych
- Sławomir Wilk: Wyłącz JavaScript i sprawdź, jak szybko może działać Internet – Technologie. 2013-12-10. [dostęp 2020-05-09]. [zarchiwizowane z tego adresu (2019-10-25)]. – artykuł o zaletach wyłączenia obsługi JavaScript w przeglądarce internetowej