JavaScript
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. JavaScriptillä voi myös tehdä mobiilisovelluksia React Nativen avulla.[2]
JavaScriptiä ei tule sekoittaa Java-kieleen.
Yleistä

JavaScript 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.[3][4]
Facebook on julkaissut kielelle Flow-nimisen staattisen tyyppitarkastajan, joka mahdollistaa varhaisen virhetarkistuksen ja helpottaa välttämään tiettyjä ajonaikaisia virheitä.[5]
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.[6] 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.[6] Tämä toiminnallisuus 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.[7]
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).[8]
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ä.[9]
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
- ↑ New in JavaScript 1.8.5 Mozilla Developer Network: Mozilla Foundation. Viitattu 10.12.2011. (englanniksi)
- ↑ https://reactnative.dev
- ↑ JavaScript and the ECMAScript Specification 2011. Mozilla Developer Network. Viitattu 10.12.2011. (englanniksi)
- ↑ ECMAScript Documentation ECMAScript. Viitattu 10.12.2011. (englanniksi)
- ↑ Flow, a new static type checker for JavaScript engineering.fb.com. Viitattu 23.2.2020. (englanniksi)
- ↑ a b Smith, Dori ja Negrino, Tom: ”1. JavaScriptin perehtyminen”, JavaScript: Tehokas hallinta, s. 5. Readme, 2007.
- ↑ http://www.ecma-international.org/publications/standards/Ecma-262-arch.htm
- ↑ Object Oriented Programming Wikibooks. Wikimedia Foundation. Viitattu 15.12.2011. (englanniksi)
- ↑ 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
Kuvia tai muita tiedostoja aiheesta JavaScript Wikimedia Commonsissa