Quire

JavaScript

From Quire, the open reference··3 min read
JavaScript
Logo języka
Pojawienie się4 grudnia 1995; około 30 lat temu[1]
ParadygmatJęzyk skryptowy wieloparadygmatowy (obiektowy, funkcyjny, imperatywny)
Typowaniedynamiczne, Duck typing
ImplementacjeSpiderMonkey, V8, JavaScriptCore, Chakra, Rhino, Carakan, KJS
Aktualna wersja stabilnaECMAScript 2024
(czerwiec 2024) [±]
TwórcaBrendan Eich
Platforma sprzętowawieloplatformowy
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]).

Wersje JavaScriptu, odmiany ECMAScriptu opracowywanej przez firmę Netscape.
WersjaWydanaOkoliczności wydaniaWażniejsze rozszerzenia implementowanej specyfikacji[8][9]przeg.spec.
1.0marzec 1996NN 2.0brak
1.1sierpień 1996Klasy typów podstawowych, konstruktory, prototypyNN 3.0brak
1.2czerwiec 1997Klasa zdarzeniaNN 4.0brak[10]
1.3październik 1998NN 4.062
1.4?Dostępna jedynie po stronie serwera (np. Netscape Enterprise Server).2
1.5listopad 2000Stałe, interfejs DOM poziom pierwszy i drugiM 0.63
1.6listopad 2005Mechanizm E4XFx 1.53
1.7październik 2006Funkcje-iteratory, wielokrotne przypisaniaFx 2.03
1.8czerwiec 2008domknięcia wyrażeń, wyrażenia generująceFx 3.03
Wersje JScriptu, odmiany ECMAScriptu opracowywanej przez firmę Microsoft.
WersjaWydanaOkoliczności wydaniaWażniejsze rozszerzenia implementowanej specyfikacji[8]przeg.spec.≈ JS
1.0sierpień 1996IE 3.0brak1.0
2.0styczeń 1997IE 3.02brak1.1
3.0październik 1997IE 4.011.3
4.0?Visual Studio 6.011.4
5.0marzec 1999Częściowa implementacja trzeciej wersji standardu (bez mechanizmu wyjątków), interfejsy XMLHttpRequest oraz DOM poziom pierwszy i drugiIE 5.021.5
5.1sierpień 2000IE 5.012
5.5sierpień 2000IE 5.53
5.6październik 2001IE 6.03
5.7listopad 2006IE 7.03
.NET11 lipca 2000Microsoft 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

Uwagi#edit

  1. ^ Informacja prasowa – „Netscape and Sun announce JavaScript”. (ang.).
  2. ^ Paul Krill: JavaScript founder Brendan Eich: WebAssembly is a game-changer. InfoWorld, 2016-03-10. [dostęp 2016-12-21]. (ang.).
  3. ^ Standard ECMA-262. www.ecma-international.org. [dostęp 2016-12-29].
  4. ^ Ringo.
  5. ^ Johnny-Five: The JavaScript Robotics & IoT Platform.
  6. ^ ES5, ES6, ES2016, ES.Next: What’s going on with JavaScript versioning?. benmccormick.org.
  7. ^ UnityScript’s long ride off into the sunset. [dostęp 2019-05-19]. (ang.).
  8. ^ a b Lub poprzedniej wersji implementacji, jeżeli specyfikacji ECMAScript jeszcze nie wydano.
  9. ^ 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.
  10. ^ Wersja ta została wydana, zanim ECMA ukończyła pierwszą specyfikację. Mimo to jest z nią częściowo zgodna.

Linki zewnętrzne#edit

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