Logo języka Image: source and license | |
| Pojawienie się | 4 grudnia 1995; około 30 lat temu[1] |
|---|---|
| Paradygmat | Język skryptowy wieloparadygmatowy (obiektowy, funkcyjny, imperatywny) |
| Typowanie | dynamiczne, Duck typing |
| Implementacje | SpiderMonkey, V8, JavaScriptCore, Chakra, Rhino, Carakan, KJS |
| Aktualna wersja stabilna | ECMAScript 2024 (czerwiec 2024) [±] |
| Twórca | Brendan Eich |
| Platforma sprzętowa | wieloplatformowy |
| Strona internetowa | |
JavaScript, w skrócie JS – skryptowy oraz wieloparadygmatowy język programowania, stworzony przez firmę Netscape, najczęściej stosowany na stronach internetowych. Twórcą JavaScriptu jest Brendan Eich[2]. 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[3].
Zastosowania#edit
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[4].
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[5].
Historia#edit
ECMAScript#edit
W 1996 r. organizacja ECMA rozpoczęła pracę nad specyfikacją języka JavaScript pozbawioną odniesień do środowiska interpretującego kod. 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 2015 roku znacząco zmienił się proces tworzenia i wydawania nowych wersji ECMAScript. Po wersji ES5 wydanej w 2009 pojawiała się wersja ES6 wydana w 2015 roku, a następna już w 2016 (ES7, a właściwie ES2016). Zmieniło się również oficjalne nazewnictwo – wersja początkowo nazywana ES6 to teraz ES2015, potem jest ES2016, ES2017 itd[6].
Proces dodawania nowych funkcji do standardu opisującego JavaScript jest opisany w artykule TC39.
Dialekty#edit
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[7]).
| Wersja | Wydana | Okoliczności wydania | Ważniejsze rozszerzenia implementowanej specyfikacji[8][9] | 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[10] | |
| 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 specyfikacji[8] | przeg. | spec. | ≈ JS |
|---|---|---|---|---|---|---|
| 1.0 | sierpień 1996 | IE 3.0 | brak | 1.0 | ||
| 2.0 | styczeń 1997 | IE 3.02 | brak | 1.1 | ||
| 3.0 | październik 1997 | IE 4.0 | 1 | 1.3 | ||
| 4.0 | ? | Visual Studio 6.0 | 1 | 1.4 | ||
| 5.0 | marzec 1999 | Częściowa implementacja trzeciej wersji standardu (bez mechanizmu wyjątków), interfejsy XMLHttpRequest oraz DOM poziom pierwszy i drugi | IE 5.0 | 2 | 1.5 | |
| 5.1 | sierpień 2000 | IE 5.01 | 2 | |||
| 5.5 | sierpień 2000 | IE 5.5 | 3 | |||
| 5.6 | październik 2001 | IE 6.0 | 3 | |||
| 5.7 | listopad 2006 | IE 7.0 | 3 | |||
| .NET | 11 lipca 2000 | Microsoft na bazie wstępnej wersji specyfikacji ECMAScript 4 stworzył JScript.NET. | 4 | ? | ||
Java#edit
Początkowo Netscape nazwała nowy język LiveScript. Nazwa została jednak szybko zmieniona na JavaScript wskutek biznesowych porozumień pomiędzy Netscape a firmą Sun Microsystems (współwłaścicielem znaku handlowego JavaScript jest Oracle Corporation, które przejęło Sun Microsystems w 2010 roku). Skrypty JavaScriptu oraz aplety Javy (mimo odrębności tych dwóch języków) mogą się wzajemnie komunikować dzięki dostępnej w przeglądarkach Netscape, Mozilla i Opera technologii LiveConnect. Często występują pewne nieporozumienia, lecz JavaScript i Java to mimo wszystko dwa różne języki.
JavaScript dla WWW#edit
Interakcja#edit
Wszystkie implementacje JavaScriptu dostępne w przeglądarkach internetowych dostarczają obiektów reprezentujących drzewo dokumentu. Mogą także umożliwiać tworzenie ciasteczek, manipulowanie oknami przeglądarki, wyświetlanie prostych okien dialogowych, pobieranie informacji o przeglądarce, zarządzanie jej pluginami oraz arkuszami stylów. Reagują także na zdarzenia wywoływane w interfejsie.
Podczas manipulowania zawartością dokumentu problem stanowił brak jego ustandaryzowanego modelu. W czwartym pokoleniu przeglądarek dostęp do niektórych elementów dokumentu w Netscape możliwy był przy użyciu kolekcji document.layers, za to w Internet Explorerze – document.all. Organizacja W3C opracowała jednak jednolity obiektowy model obsługiwany przez wszystkie współczesne przeglądarki (w tym Operę od wersji 6, Konquerora od wersji 3 oraz Safari). Tablice all i layers zostały uznane za przestarzałe i wsparcie dla nich zostało praktycznie wycofane.
Transpilatory#edit
Przeglądarki oraz język JavaScript stały się platformą do obsługi innych języków. Istnieją transpilatory, 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ż#edit
- 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#edit
- ^ Informacja prasowa – „Netscape and Sun announce JavaScript”. (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.
- ^ ES5, ES6, ES2016, ES.Next: What’s going on with JavaScript versioning?. benmccormick.org.
- ^ UnityScript’s long ride off into the sunset. [dostęp 2019-05-19]. (ang.).
- ^ a b Lub poprzedniej wersji implementacji, jeżeli specyfikacji ECMAScript jeszcze nie wydano.
- ^ 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. - ^ Wersja ta została wydana, zanim ECMA ukończyła pierwszą specyfikację. Mimo to jest z nią częściowo zgodna.
Linki zewnętrzne#edit
- 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
- JavaScript: The First 20 Years. [dostęp 2022-02-06]. (ang.). – Historia Języka JavaScript podczas konferencji PLDI 2021 (wideo)
This article is mirrored from “JavaScript” on Polski Wikipedia, revision 80066751, written by Wikipedia's contributors and licensed CC BY-SA 4.0. Editing it here creates a Quire copy with its own history.
Synced with Wikipedia revision 80066751 · just now