JavaScript

Kohteesta Wikipedia
Loikkaa: valikkoon, hakuun
JavaScript
Paradigma useita: skriptikieli, olio-ohjelmointi (prototyyppipohjainen), imperatiivinen ohjelmointi, funktionaalinen ohjelmointi
Tyypitys löyhä, 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 ECMAScript
Uutisryhmä javascript

JavaScript on alun perin Netscape Communications Corporationin 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 (Node.js -ajoympäristössä), pelien kehityksessä ja työpöytä- sekä mobiilisovellusten luomisessa.

JavaScriptiä ei tule sekoittaa Javaan.

Yleistä[muokkaa | muokkaa wikitekstiä]

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[muokkaa | muokkaa wikitekstiä]

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[muokkaa | muokkaa wikitekstiä]

Prototyyppi-pohjainen oliomalli[muokkaa | muokkaa wikitekstiä]

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[muokkaa | muokkaa wikitekstiä]

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

Mime-tyyppi ja tiedostoliite[muokkaa | muokkaa wikitekstiä]

Javascript-tiedostojen tiedostoliite on yleensä .js.

Javascript-tiedostojen mime-tyyppi on application/javascript tai vanhentunut text/javascript .[7]. Jälkimmäistä käytetään kuitenkin yhä laajasti, sillä Internet Explorer ei tue virallista mime-tyyppiä.

Esimerkkiohjelmia[muokkaa | muokkaa wikitekstiä]

Hei, maailma! JavaScript-skripti upotettuna HTML-dokumenttiin[muokkaa | muokkaa wikitekstiä]

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

Itsestään toistava esimerkki upotettuna HTML-dokumenttiin[muokkaa | muokkaa wikitekstiä]

<html>
 <head>
  <title>JavaScript-esimerkki 2</title>
 </head>
 <body>
  <script>
   function SayHello()
    {
     alert("Hei!")
     setTimeout("SayHello()", 10000);
    }
   </script>
  <input type="button" value="Paina" onclick="SayHello()"/>
 </body>
</html>

Anonyymi funktio[muokkaa | muokkaa wikitekstiä]

/** 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[muokkaa | muokkaa wikitekstiä]

  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. RFC 4329

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]