Siirry sisältöön

JavaScript

Wikipediasta
Tämä on arkistoitu versio sivusta sellaisena, kuin se oli 22. helmikuuta 2020 kello 22.03 käyttäjän Ipr1 (keskustelu | muokkaukset) muokkauksen jälkeen. Sivu saattaa erota merkittävästi tuoreimmasta versiosta.
JavaScript
Paradigma useita: skriptikieli, olio-ohjelmointi (prototyyppipohjainen), imperatiivinen ohjelmointi, funktionaalinen ohjelmointi
Tyypitys heikko tyypitys, dynaaminen
Yleinen suoritusmalli tulkittu
Muistinhallinta roskienkeruu
Julkaistu 1995
Kehittäjä Brendan Eich, Netscape Communications Corporation, Mozilla Foundation
Vakaa versio 1.8.5[1]
Merkittävimmät toteutukset KJS, Rhino, SpiderMonkey, V8, WebKit, Carakan, Chakra
Vaikutteet C, Java, Perl, Python, Scheme, Self
Vaikuttanut ActionScript, CoffeeScript, Dart, JScript.NET, Objective-J, QML, TIScript, TypeScript, Node.js, LiveScript
Käyttöjärjestelmä alustariippumaton
Verkkosivu JavaScript
Uutisryhmä javascript

JavaScript on alun perin Netscapen kehittämä pääasiassa Web-ympäristössä käytettävä dynaaminen komentosarjakieli. JavaScriptin tärkein sovellus on mahdollisuus lisätä Web-sivuille dynaamista toiminnallisuutta. Sitä käytetään tavallisimmin osana verkkoselaimia, joiden toteutukset sallivat asiakaspuolen skriptien interaktion käyttäjän kanssa, selaimen rajoitetun hallinnan, asynkronisen kommunikaation ja käyttäjälle näytettävän dokumenttisisällön muokkaamisen. JavaScriptiä käytetään myös palvelinten verkko-ohjelmoinnissa (esimerkiksi Node.js -ajoympäristössä), pelien kehityksessä ja työpöytä- sekä mobiilisovellusten luomisessa.

JavaScriptiä ei tule sekoittaa Java-kieleen.

Yleistä

JavaScript-tiedoston ikoni.

JavaScriptin nykymuoto on dynaamisesti tyypitetty, tulkattava oliopohjainen komentosarjakieli, jonka syntaksi perustuu löyhästi C-ohjelmointikieleen. Kielen semantiikka ja suunnittelu on saanut vaikutteita Self- ja Scheme-ohjelmointikielistä.

Viimeisin kielen määrittely on JavaScript 1.8.5, joka pohjautuu EcmaScript-standardiin ECMA-262 Edition 3. Standardoitua JavaScriptiä kutsutaan nimellä ECMAScript. JavaScriptiä kehittää standardin mukaiseksi Netscape yhdessä ECMA-standardointiorganisaation kanssa.[2][3]

Useat selaimet tukevat standardin lisäksi lisätoiminnallisuuksia, kuten Mozilla-selainten E4X, joka on XML:n käsittelyyn erikoistunut kielen laajennus (standardi ECMA-357).

Historia

JavaScriptin kehitti alun perin Netscapen Brendan Eich nimellä Mocha. Nimi muutettiin LiveScriptiksi ja viimein markkinointisyistä JavaScriptiksi Netscapen liittouduttua Java-kielen kehittäneen Sun Microsystemsin kanssa. JavaScript on kuitenkin Java-ohjelmointikielestä eroava tekniikka.[4] JavaScript tuli käyttöön Netscape Navigator 2.0 -selaimessa maaliskuussa 1996.

JavaScriptin suosion ansiosta Microsoft kehitti siitä yhteensopivan version, jolla se antoi tavaramerkkisyistä nimen JScript.[4] Tämä toiminallisuus lisättiin Internet Explorerin versioon 3.0, joka julkaistiin elokuussa 1996. Microsoft aloitti JScriptin standardoinnin ECMA-järjestössä. Standardin ensimmäinen versio ECMA-262 hyväksyttiin kesäkuussa 1997.[5]

Standardoidusta Javascript-kielestä käytetään nimeä ECMAScript.

Ominaisuuksia

Prototyyppi-pohjainen oliomalli

Javascriptin oliomallin perusyksikköjä ovat object- ja function-oliot. Oliomalli ja sen enkapsulaatio ja periytyvyys pohjautuu prototyyppeihin, ei luokkiin kuten useimmissa olio-ohjelmointikielissä (esim. Smalltalk, C++, Java, Ruby).[6]

Ohjelmointityyli

JavaScriptille ei ole yksittäistä ohjelmointityyliä tai syntaksia sanelevaa ohjetta. Yleensä mainitaan Crockfordin, Googlen tai Yahoon tyylioppaat.

Mime-tyyppi ja tiedostoliite

Javascript-tiedostojen tiedostoliite on yleensä .js.

Javascript-tiedostojen MIME-tyyppi on application/javascript tai virallisesti vanhentunut text/javascript (RFC 4329). Jälkimmäinen on kuitenkin edelleen käytössä.[7]

Esimerkkiohjelmia

Hei, maailma! JavaScript-skripti upotettuna HTML-dokumenttiin

<html>
 <head>
  <title>JavaScript-esimerkki</title>
 </head>
 <body>
  <script>
   document.write("Hei, maailma!");
  </script>
 </body>
</html>

Itsestään toistava esimerkki upotettuna HTML-dokumenttiin

<html>
 <head>
  <title>JavaScript - Esimerkki 2</title>
 </head>
 <body>
  <script>
   function sayHello() {
     alert("Hei!")
   }
   </script>
  <button onclick="setTimeout(function(){sayHello()}, 1000)">Say Hello</button>
 </body>
</html>

Anonyymi funktio

/** Anonyymi funktio joka kutsuu itseään,
 *  palauttaa merkkijonon "Bar" 66% ja "Foo" 33% todennäköisyydellä,
 *  ja kulkeutuu sitten roskienkeruuseen.
 **/
(function(arg){
    if (arg instanceof Array) { // pino eli periytyykö Arraysta
        for (var i in arg) { // pinon iterointi
            arg[i] = String.fromCharCode(arg[i]); // numeroarvosta merkki
        };
        arg = arg.join(""); // kirjainpinosta merkkijonoksi
    };
    return arg;
})(Math.random() < 0.33 ? [70, 111, 111] : "Bar") // argumenttina kolmiehtoinen-operaatio, 'ternary'

Lähteet

  1. New in JavaScript 1.8.5 Mozilla Developer Network: Mozilla Foundation. Viitattu 10.12.2011. (englanniksi)
  2. JavaScript and the ECMAScript Specification 2011. Mozilla Developer Network. Viitattu 10.12.2011. (englanniksi)
  3. ECMAScript Documentation ECMAScript. Viitattu 10.12.2011. (englanniksi)
  4. a b Smith, Dori ja Negrino, Tom: ”1. JavaScriptin perehtyminen”, JavaScript: Tehokas hallinta, s. 5. Readme, 2007.
  5. http://www.ecma-international.org/publications/standards/Ecma-262-arch.htm
  6. Object Oriented Programming Wikibooks. Wikimedia Foundation. Viitattu 15.12.2011. (englanniksi)
  7. HTML 5.2 (2.2.2. Dependencies) 14.12.2017. W3C. Viitattu 21.5.2019. (englanniksi)

Kirjallisuutta

  • Flanagan, David: JavaScript: Tehokäyttäjän opas, s. 1–648. Suomentanut Matilainen, Pasi. Jyväskylä: Suomen ATK-kustannus, 1997. ISBN 951-762-563-4

Aiheesta muualla