JavaScript

Yleistä

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.
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. 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. 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.
Standardoidusta Javascript-kielestä käytetään nimeä ECMAScript.

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).

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ä.

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'