Movatterモバイル変換


[0]ホーム

URL:


Siirry sisältöön
Wikipedia
Haku

JavaScript

Wikipediasta
JavaScript
Paradigmamonia:olio-ohjelmointi (prototyyppipohjainen),imperatiivinen,funktionaalinen
Tyypitysheikko, dynaaminen
Yleinen suoritusmallitulkattava
Muistinhallintaautomaattinen
Julkaistu4. joulukuuta1995[1]
SuunnitellutBrendan Eich
Kehittäjäalun perinNetscape, nykyään Ecma International
Vakaa versioECMAScript 2024[2]
Merkittävimmät toteutuksetV8,SpiderMonkey, JavaScriptCore, Chakra
VaikutteetC,Java,Perl,Python,Scheme,Self
VaikuttanutTypeScript,Dart,Haxe,CoffeeScript, QML, Objective-J, LiveScript, JScript .NET, ActionScript
Käyttöjärjestelmäalustariippumaton
Uutisryhmäcomp.lang.javascript
Infobox OK

JavaScript on alun perinNetscapen kehittämä, pääasiassaverkkoympäristössä käytettäväohjelmointikieli.

JavaScript on dynaamisesti ja heikostityypitetty, tulkattava,oliopohjainenkomentosarjakieli, jonka syntaksi perustuu löyhästiC-ohjelmointikieleen. Kielen semantiikka ja suunnittelu on saanut vaikutteitaSelf- jaScheme-ohjelmointikielistä.Java on ollut merkittävä osa JavaScriptin kehitystä. JavaScript on saanut vaikutteita muun muassa sen syntaksista ja standardikirjastosta. Math- ja Date-oliot perustuvat Java 1.0:n luokkiin ja niitä voidaan hyödyntää myös JavaScriptissä. Kaikesta huolimatta JavaScript ja Java eroavat toisistaan niin paljon, että niitä ei pitäisi sekoittaa toistensa kesken, vaan kuuluisi kohdella täysin eri kokonaisuuksina.

Web-kehitykseen käytetään usein JavaScriptiin perustuviaohjelmistokehyksiä (esim.Svelte,AngularJS jaNext.js), käyttöliittymäkirjastoja (kutenReact) sekä JavaScriptin laajennoksia ja JavaScriptiksi käännettäviä (engl.transpiler) kieliä kutenJSX jaTypeScript – ei niinkään natiivia JavaScriptiä suoraan. JavaScriptiä ei tule sekoittaaJava-kieleen; nimi on peräisin Netscapen ja Javan kehittäneenSunin lisenssisopimuksesta ja pyrkimyksestä markkinoida JavaScriptistä Javan "apukieli"[3]. Kielen standardin virallinen nimi on ECMAScript.

JavaScript-tiedoston ikoni.

Historia

[muokkaa |muokkaa wikitekstiä]

JavaScriptin kehitti alun perin NetscapenBrendan Eich nimelläMocha. Nimi muutettiinLiveScriptiksi ja viimein markkinointisyistäJavaScriptiksi Netscapen liittouduttuaJava-kielen kehittäneenSun Microsystemsin kanssa. JavaScript on kuitenkin Java-ohjelmointikielestä eroava tekniikka.[4] JavaScript tuli käyttöönNetscape Navigator 2.0 -selaimessa maaliskuussa 1996.

JavaScriptin suosion ansiosta Microsoft kehitti siitä yhteensopivan version, jolle se antoitavaramerkkisyistä nimen JScript.[4] Tämä toiminnallisuus lisättiinInternet Explorerin versioon 3.0, joka julkaistiin elokuussa 1996. Microsoft aloitti JScriptin standardoinnin Ecma International -järjestössä. Ensimmäinen versio standardista julkaistiin kesäkuussa 1997[5].

2000-luvun alussa Internet Explorerin hallitessa selainten välistä kilpailua, asiakaspuolen skriptaus oli pysähtynyt. Tähän alkoi kuitenkin näkymään muutosta vuodesta 2004 eteenpäin, kun Netscapen seuraaja Mozilla julkaisi Firefox-selaimen. Firefox sai paljon hyvää vastaanottoa ja vei merkittävän markkinaosuuden Internet Explorerilta.lähde?

Google esitteliChrome-selaimensa vuonna 2008, jossa oli V8 JavaScript -moottori, joka oli nopeampi kuin kilpailijansa. Tärkein innovaatio oli just-in-time -kääntäminen (JIT), joten muut selainten valmistajat joutuivat uudistamaan moottoreitaan kilpaillakseen JIT:in kanssa.lähde?

Heinäkuussa 2008 eri osapuolet kokoontuivat konferenssiin Oslossa. Tämä johti lopulta sopimukseen yhdistää kaikki asiaankuuluvat työt ja ajaa kieltä eteenpäin. Tuloksena oli ECMAScript 5 -standardi, joka julkaistiin joulukuussa 2009.Kunnianhimoinen työ ohjelmistokielen parissa jatkui muutamia vuosia, joka kulminoitui laajaan kokoelmaan erilaisia lisäyksiä ja hienosäätöjä. Tämä formalisoitiin ECMAScript 6:n julkaisulla vuonna 2015.lähde?

Käyttöaiheet

[muokkaa |muokkaa wikitekstiä]

JavaScriptin tärkein sovellus on mahdollisuus lisätä verkkosivuille dynaamista toiminnallisuutta. Sitä käytetään tavallisimmin osanaverkkoselaimia, 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. JavaScriptin käyttö on yleistynyt sen yksinkertaisuuden, joustavuuden, monipuolisten lisäosien ja tehokkuuden vuoksi myös palvelinpuolella[6], jolloin sitä voidaan käyttää esimerkiksiNode.js -ajoympäristössä. Lisäksi ohjelmointikieltä käytetään pelien kehityksessä sekä työpöytä- ja mobiilisovellusten luomisessa.

Ominaisuudet

[muokkaa |muokkaa wikitekstiä]

Tyypit

[muokkaa |muokkaa wikitekstiä]

JavaScript onheikosti tyypitetty, mikä tarkoittaa, ettei käytössä olevia tietorakenteita erikseen määritellä ja JavaScript pyrkii yleensä muuttamaan tyyppejä automaattisesti virheen nostamisen sijaan. Esimerkiksi taulukko voi kehittyä oliomaiseksi muuttujarakenteeksi ja kokonaisluvun ja liukuluvun eroja ei tarvitse välttämättä miettiä.

JavaScriptin primitiiveihin kuuluvatBoolean,null,undefined,Number,String,BigInt,Symbol jaObject. Tyypitys on dynaaminen ja ajonaikaiset tyyppimuunnokset ovat tavallisia. Literaaleihin kuuluvat tekstiliteraalit"string", taulukkoliteraalit[1, 2, 3, /* tyhjä */, 5, ], Boolen literaalittrue jafalse, numeeriset literaalit kuten10,3.14 ja1.5e-9, objektiliteraalit kuten{ nimi: "Arvo", "taulukko": [1, 2, 3], teeJotain() { ... }, }, regex-literaalit/[A-Z]+/ ja mallineet`Hei, ${nimi}!'\n'`.[7]

Funktiot

[muokkaa |muokkaa wikitekstiä]

Funktio määritellään deklaraatiosyntaksillafunction teeJotain(x) { ... } tai lausekkeenalet teeJotain = function (x) { ... };. Lausekesyntaksi on tavallinen, kun funktiota on tarkoitus käyttää toisen funktion parametrina. Nimettömiin lambdafunktioihin käytetäänfat arrow-syntaksia(x) => x.length tai yksinkertaisestifunction () { ... }. Välittömästi kutsuttu nimetön funktio voi olla myös(function () { ... })();. Funktion sisänäkymässä on käytössä erityinenarguments-taulukko, joka sisältää järjestyksessä kaikki funktiolle annetut parametrit. Vastaavasti ylimääräisten parametrien kaappaamiseen voidaan käyttää...nimi-syntaksia tyylilläfunction nimi(x, ...y) { ... }. Jos taas määritettyjä argumentteja ei anneta, niiden arvo onundefined tai oletusarvofunction nimi(x = "oletus") { ... }. Funktioiden käyttö on sallittua ennen niiden määritelmiä (engl.function hoisting), jos funktio on määritelty deklaraatiotyylillä.[7]

Lauseet

[muokkaa |muokkaa wikitekstiä]

Muuttuja määritelläänvar (funktionäkymä, muuttuva),let (blokkinäkymä, muuttuva) jaconst (blokkinäkymä, muuttumaton) avainsanoilla. JavaScript ei kuitenkaan edellytä näitä vaan luo avainsanan puuttuessa alustamattoman globaalin muuttujan. Tällainen joustavuus on kielelle tyypillistä.var-sanalla määriteltyjen muuttujien käyttö on myös sallittua ennen määrittelyä, mutta niiden arvo on tällöinundefined (engl.variable hoisting). Destrukturointi on mahdollista tyylillälet [eka, toka, kolmas] = teeJotain(input);.[7]

Lauseet erotellaan puolipisteillä (mutta tämä ei ole pakollista yksirivisissä lauseissa). Lauseisiin kuuluvat myös[7]

  • blokkilauseet{ ... }
  • if-else-lauseif (...) { ... } else if (...) { ... } else { ... } (undefined,null,0,NaN ja"" tulkitaan olevanfalse; kaikki muut arvot tulkitaan olevantrue)
  • switch-lauseswitch (x) { case y: ...; case z: ...; default: ...; }
  • poikkeustenhallinnanthrow jatry { ... } catch (e) { ... } finally { ... }
  • for-silmukkafor (let x = 0; x < 10; x++) { ... }
  • for-in-silmukkafor (x in y) { ... }, missäy on ominaisuuksia sisältävä objekti jax ominaisuuden nimi
  • for-of-silmukkafor (x of y) { ... }, missäy on iteroitava objekti jax on arvo
  • do-while-silmukkado { ... } while (...);
  • while-silmukkawhile (...) { ... }

Operaattoreita ovat[7]

  • sijoitusoperaattori= ja tämän päivittävät versiot kuten+= ja ehdolliset versiot kuten&&= (true) ja??= (null)
  • vertailuoperaattorit kuten heikkoyhtäläisyys== ja vahva (sama tyyppi) yhtäläisyys===
  • aritmeettiset operaattorit kuten jakojäännösx % y ja inkrementointi++x
  • bittioperaattorit kuten ja& ja ei~
  • loogiset operaattorit kuten ja&&, tai||, ei! ja?? (null taiundefined)
  • ehto-operaattorix ? y : z
  • delete,typeof,void,in,instanceof,new
  • ryhmittely( ... )

Modularisointi

[muokkaa |muokkaa wikitekstiä]

JavaScript-moduulissa käytetäänexport-lausetta kutenexport { muuttuja, nimi, funktio, Luokka }; ja nämä jaetut objektit tuodaan uuteen globaaliin näkymään tyylilläimport { muuttuja, funktio } from "./polku/moduuli.js". HTML-tiedostossa tulee tällöin käyttäätype-attribuuttia<script type="module" src="..."></script>. Nimetyn viennin sijaan voidaan myös käyttääexport default nimi;. Jos taas halutaan vaihtaa tuotujen objektien nimiä, voidaan käyttääas-avainsanaa tyylilläimport { funktio as f, nimi as n } from "./polku/moduuli.js";. Useat tuodut objektit voidaan myös laittaa moduuliobjektiin tyylilläimport * as Moduuli from "./polku/moduuli.js";. Vienti voidaan myös merkitä avainsanallaawait, jolloin moduulin tuonti ei estä muita prosesseja, jotka eivät riipu tästäawait-moduulista. Moduulit on parasta kehittää niin, että ne toimivat eri ajoympäristöissä (web-selain, Node.js). Globaalit muuttujat ovat yhden globaalin objektin ominaisuuksia, kuten web-selaimessawindow.muuttuja. Funktiot ja blokkilauseet (engl.block statement) luovat paikallisia näkymiä ja globaalit nimet näkyvät kaikkialle.[7]

Olio-ohjelmointi

[muokkaa |muokkaa wikitekstiä]

JavaScriptin oliomallin perusyksikköjä ovat object- ja function-oliot. Oliomalli ja sen enkapsulaatio japeriytyvyys pohjautuvatprototyyppeihin, ei luokkiin kuten useimmissa olio-ohjelmointikielissä (esim.Smalltalk,C++,Java,Ruby).[8]

Koska JavaScript on prototyyppipohjainen kieli, olioiden luominen ei edellytäluokkia. Oliot voidaan rakentaa suoraan "tyhjästä" tai jonkin toisen olion prototyypin pohjalta. Prototyypit tukevat siis eräänlaista versiotaperinnästä, joka on tärkeä käsite luokkapohjaisissa kielissä, kutenJavassa. Jokaisella JavaScript-oliolla on sisäänrakennettuna ominaisuutena jokin prototyyppi[9]. Prototyypit ovat myös olioita ja näin myös prototyypeillä on omat prototyyppinsä. Tästä muodostuu ns. prototyyppiketju, joka jatkuu niin pitkään kunnes päästään olioon, jonka prototyyppi onnull. Tämä muistuttaa hieman perintäketjua luokkapohjaisissa kielissä. Kun olion attribuuttia referoidaan esim.olio.ominaisuus, sen arvo haetaan prototyyppiketjusta tai arvon puuttuessa palautetaanundefined.

Objektit voivat periä ominaisuudet. prototyypiltä__proto__-syntaksillaconst o = { __proto__: prototyyppi, muuttuja: 10, }; tai funktiokonstruktorin avullafunction Konstruktori(x) { ... } jaKonstruktori.prototype.metodi = function() { ... };.this-avainsana mahdollistaa objektiin viittaamisen tämän metodin sisällä jasuper-syntaksi mahdollistaa vastaavasti objektin prototyyppiin/vanhempaan viittaamisen. Konstruktoria kutsutaan käyttämällänew-avainsanaa funktiokutsun edellä esim.const auto = new Auto("Toyota", 2007);. Vaihtoehtoisesti voidaan käyttääObject.create-metodia ja prototyyppiobjektia.[7]

Prototyyppijärjestelmän päälle JavaScriptiin on myös kehitetty perinteisempi luokkajärjestelmä. Uusi luokka määritellään syntaksillaclass Nimi { constructor() { ... } nimi2 = 1; static nimi2 = 2; metodi() { ... } #nimi3 = 3; }.static merkitsee luokkaominaisuuden ja# yksityisen ominaisuuden. Luokasta tehdään instanssinew-avainsanallaconst i = new Nimi();. Luokat sallivat myös aksessorikentät lisäämällä erityiset metoditget ominaisuus() { return ...; } jaset ominaisuus(x) { ... }. Periminen onnistuuclass Luokka extends Yläluokka { ... }.[7]

Tiedostot

[muokkaa |muokkaa wikitekstiä]

JavaScript-tiedostojen tiedostoliite on yleensä.js.

JSON-tiedostomuoto (engl.JavaScript Object Notation) perustuu JavaScriptin tietorakenteisiin, mutta sitä käytetään muissakin ohjelmointikielissä. Esimerkiksiweb-sovelluksissa JSON on yleinen tiedonsiirtomuoto.[10]

JavaScript-tiedostojenMIME-tyyppi onapplication/javascript tai virallisesti vanhentunuttext/javascript (RFC 4329). Jälkimmäinen on kuitenkin edelleen käytössä[11].

Muut

[muokkaa |muokkaa wikitekstiä]

Uusi iteraattori voidaan luoda tekemällä objekti, jolla onnext-metodi, joka palauttaavalue jadone ominaisuudet sisältävän objektin. Generaattori on erityinen iteraattori, joka määritellään yksinkertaisemmalla syntaksilla malliafunction* teeIteraattori(x) { ... yield index; ... }. Iteroitavalla objektilla on oltavaSymbol.iterator-metodi. Sisäänrakennettuja iteroitavia objekteja ovatString,Array,TypedArray,Map jaSet.[7]

Promise on objekti joka edustaa asynkronisesti laskettua tulosta ja siihen voidaan liittää ns. callback-funktioitathen,catch,all,resolve,reject ... metodien avulla.[7]

Kommentit ovat// Yksi rivi tai/* Useita riviä */.[7] JavaScriptille ei ole yksittäistä tyyliä tai syntaksia sanelevaa ohjetta – yleensä mainitaanCrockfordin,Googlen taiYahoon tyylioppaat.

Turvallisuus

[muokkaa |muokkaa wikitekstiä]

Jotkut käyttäjät päätyvät poistamaan selaimistaan JavaScript-tuen erinäisistä syistä. JavaScriptiä käytetään verkkosivujen toiminnallisuuden rakentamiseen, mikä tarkoittaa sitä että sillä on myös lukuisia epämieluisia käyttökohteita. JavaScriptillä voi saada aikaan ärsyttäviä toimintoja, kuten popup-mainoksia, sitä voidaan käyttää sivuilla vierailevan käyttäjän seuraamiseen, JavaScriptillä toteutetut elementit saattavat hidastaa selaamiseen käytettyä laitetta sekä pahimmillaan aiheuttaa käyttäjälle turvallisuusriskin.[12]

Yleisin turvallisuushuoli JavaScriptiin liittyen on niin kutsuttuCross-site scripting (XSS). Nämä XSS lyhenteellä tunnetut hyökkäykset saattavat aiheuttaa verkkosivun käsittelemän tiedon laadusta riippuen ongelmia pienestä harmista aina suuriin taloudellisiin tappioihin. Hyökkäyksen perustana on haavoittuvaiselle verkkosivulle istutettu koodi, jonka tavoitteena on usein varastaa sivustolla vierailevien käyttäjien tietoja. Useimmiten XSS hyökkäykset käyttävät JavaScriptiä, minkä vuoksi tuen estäminen voi olla tehokas työkalu hyökkäysten torjumiseksi.[13]

Käytäntö ei ole yleinen, vain noin 0.2% internetin käyttäjistä maailmanlaajuisesti on estänyt JavaScriptin selaimestaan. Yleisin selain, jossa JavaScript on estetty onpimeän verkon selaamiseen usein käytettyTor-selain, jonka käyttäjistä 10.5% on estänyt JavaScriptin. Yleisin maa, jossa JavaScript on estettynä, onTaiwan, jossa 2.3% käyttäjistä on estänyt JavaScriptin selaimistaan. Euroopassa eniten JavaScriptin estäneitä käyttäjiä löytyySuomesta, jossa se on estettynä prosentilla käyttäjistä.[14]

Toteutukset

[muokkaa |muokkaa wikitekstiä]

Eurooppalainen tieto- ja viestintäjärjestelmien standardointiyhdistysEcma International on luonut JavaScript-kielestä standardoidun version, jota kutsutaan nimelläECMAScript. Se on määritelty järjestön standardissa ECMA-262, jonka myösISO on hyväksynyt kansainväliseksi standardiksi ISO 16262.[15] ISO/IEC 16262 on vedetty pois ja sen on korvannut ISO/IEC 22275:2018.[16][17] Uusin versio ECMAScriptistä on kesäkuussa 2021 julkaistu ECMAScript 2021.[5]

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

Facebook on julkaissut kielelle Flow-nimisen staattisen tyyppitarkastajan, joka mahdollistaa varhaisen virhetarkistuksen ja helpottaa välttämään tiettyjä ajonaikaisia virheitä.[18]

Liittyvät teknologiat

[muokkaa |muokkaa wikitekstiä]

JavaScript-kielen ympärillä on laaja ekosysteemi erilaisia teknologioita, jotka mahdollistavat kielen kehityksen sekä tekee kielestä yhden monipuolisimmista ja tehokkaimmista web-kehityksen ohjelmointikielistä.

Node.js

[muokkaa |muokkaa wikitekstiä]

Node.js on ilmainen avoimen lähdekoodin alustariippumaton JavaScript ajoympäristö, jonka avulla kehittäjät voivat luoda palvelimia, verkkosovelluksia, komentorivityökaluja ja komentosarjoja.[19] Node.js on rakennettu Googlen kehittämän avoimen lähdekoodin V8 -moottorin päälle, joka on erittäin tehokas JavaScript-tulkki. Node.js ja V8 muodostavat tehokkaan parin JavaScriptin palvelinpuolelle, joka luo uusia mahdollisuuksia web-kehittäjille.

TypeScript

[muokkaa |muokkaa wikitekstiä]

TypeScript on alkujaan Microsoftin kehittämä ohjelmointikieli, jonka ensimmäinen versio 1.0 julkaistiin vuonna 2014.[20] TypeScript laajentaa JavaScriptiä tarjoamalla siihen tyypityksen, joka auttaa virheiden korjaamisessa. JavaScript-kieli on Typescriptin osajoukko ja siten kaikki olemassa olevat JavaScript-ohjelmat ovat kelvollisia TypeScript-ohjelmia, mutta ei päinvastoin. TypeScript-koodi käännetään (transpiloidaan) JavaScriptiksi.

Työkalut ja kirjastot

[muokkaa |muokkaa wikitekstiä]

JavaScriptissä erilaiset kirjastot ja Frameworkit ovat keskeisiä työkaluja, jotka edesauttavat JavaScript-kielen web-kehitystä. Nämä tarjoavat valmiiksi rakennettuja ratkaisuja sekä rakenteita. JavaScriptin yleisimmät työkalut ovat React, Angular ja Vue.js.[21] Näitä kaikkia Reactia, Angularia ja Vue.js:ää käytetään pääosin front-end-kehitykseen, eli sovellusten käyttöliittymien rakentamiseen. Yleisimpiä kirjastoja JavaScriptissä ovat JQuery, Lodash ja D3.js, jotka tarjoavat yksittäisiä toimintoja työskentelyyn. jQuery helpottaa DOM-manipulaatiota, Lodash tarjoaa erilaisia funktioita tietorakenteiden käsittelyyn ja D3.js mahdollistaa datan visualisointien luomisen.

Esimerkit

[muokkaa |muokkaa wikitekstiä]

Prototyypit

[muokkaa |muokkaa wikitekstiä]
// Luo uusi tyhjä olio.letperson=Object.create(null);// Lisää olioon attribuutteja.person.name='foo';person.age=25;// Lisää olioon metodi.person.saySomething=function(){console.log('Hello. I am '+this.name+'.');}person.saySomething();// > Hello. I am foo.// Luo uusi olio käyttämällä edellistä prototyyppinä.letanotherPerson=Object.create(person);// Muuta attribuutin arvoa.anotherPerson.name='bar';// JavaScript etsii "saySomething" ja "name" prototyyppiketjusta.anotherPerson.saySomething();// > Hello. I am bar.

HTML-dokumenttin upotettuna

[muokkaa |muokkaa wikitekstiä]
<html><head><title>JavaScript-esimerkki</title></head><body><!-- script-merkkien välissä oleva teksti         tulkitaan JavaScript-koodiksi ja ajetaan heti, kun         HTML-tiedosto avataan web-selaimessa. --><script>// "document" on web-selainympäristössä oleva// globaali objekti, joka edustaa web-sivua (HTML DOM) ja// mahdollistaa tämän muokkaamisen JavaScriptin avulla.document.write("Hei, maailma!");</script></body></html>

Funktiot

[muokkaa |muokkaa wikitekstiä]
/* Nimetön funktio, joka kutsuu itseään, palauttaa merkkijonon "Bar"todennäköisyydellä 67 % ja "Foo" todennäköisyydellä 33 %, ja kulkeutuusitten roskienkeruuseen. */(function(arg){// pino eli periytyykö arraystaif(arginstanceofArray){// muutetaan jokainen numeroarvo kirjaimeksiarg.forEach((item,index)=>{arg[index]=String.fromCharCode(item);});arg=arg.join("");// kirjainpinosta merkkijonoksi}returnarg;// argumenttina kolmiosainen (ternary) operaatio})(Math.random()<=0.33?[70,111,111]:"Bar");

Lähteet

[muokkaa |muokkaa wikitekstiä]
  • Rapo, Jani: TypeScriptin hyödyllisyys JavaScript-ohjelmistokehityksessä. (Pro gradu -tutkielma) Helsingin yliopisto, 2020. Teoksen verkkoversio (PDF) Viitattu 16.10.2021.

Viitteet

[muokkaa |muokkaa wikitekstiä]
  1. Netscape and Sun announce JavaScript (Arkistoitu 6.6.2002) Wayback Machine. Arkistoitu 6.6.2002. Viitattu 16.10.2021. (englanniksi)
  2. ECMAScript® 2024 Language Specification,(viitattu). Tieto on haettuWikidatasta.
  3. https://stackoverflow.com/questions/2018731/why-is-javascript-called-javascript-since-it-has-nothing-to-do-with-java
  4. abSmith, Dori ja Negrino, Tom: ”1. JavaScriptin perehtyminen”, #"#cite_ref-ecma_5-0">abECMA-262 Ecma International. Viitattu 16.10.2021. (englanniksi)
  5. Rapo 2020, s. 1.
  6. abcdefghijkhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide
  7. Object Oriented Programming Wikibooks. Wikimedia Foundation. Viitattu 15.12.2011. (englanniksi)
  8. Object prototypes - Learn web development | MDN developer.mozilla.org. Viitattu 25.9.2022. (englanniksi)
  9. Javascript-tietorakenteet – Web-käyttöliittymien ohjelmointi Jyväskylän yliopisto. Viitattu 16.10.2021.
  10. HTML 5.2 (2.2.2. Dependencies) 14.12.2017. W3C. Viitattu 21.5.2019. (englanniksi)
  11. JavaScript and security: Does JavaScript have any security problems? WhatIsMyBrowser.com. 23.2.2022. Viitattu 8.6.2023. (englanniksi)
  12. Cross Site Scripting (XSS) | OWASP Foundation owasp.org. Viitattu 8.6.2023. (englanniksi)
  13. What percentage of browsers with javascript disabled? - Deliberate Digital deliberatedigital.com. Viitattu 8.6.2023.
  14. Rapo 2020, s. 10.
  15. ISO/IEC 16262:2011 iso.org. Viitattu 18.5.2022. (englanniksi)
  16. ISO/IEC 22275:2018 iso.org. Viitattu 18.5.2022. (englanniksi)
  17. Flow, a new static type checker for JavaScript engineering.fb.com. Viitattu 23.2.2020. (englanniksi)
  18. Node.js — Run JavaScript Everywhere nodejs.org. Viitattu 28.6.2024. (englanniksi)
  19. Jonathan Turner [MS: Announcing TypeScript 1.0 TypeScript. 2.4.2014. Viitattu 28.6.2024. (englanniksi)
  20. Stack Overflow Trends insights.stackoverflow.com. Viitattu 28.6.2024.

Kirjallisuutta

[muokkaa |muokkaa wikitekstiä]
  • Flanagan, David: #"/wiki/Toiminnot:Kirjal%C3%A4hteet/951-762-563-4" title="Toiminnot:Kirjalähteet/951-762-563-4">ISBN 951-762-563-4
  • Peltomäki, Juha: JavaScript-kieli: Uudet ominaisuudet. (154 sivua) Books on Demand, 2017. ISBN 978-951-568-355-7
  • Marijn Haverbeke: Eloquent JavaScript eKirja (ilmainen) eloquentjavascript.net. 2024. Viitattu 10.5.2024. (englanniksi)

Aiheesta muualla

[muokkaa |muokkaa wikitekstiä]
Tuotantokäytössä
Akateemiset
Historialliset
Noudettu kohteesta ”https://fi.wikipedia.org/w/index.php?title=JavaScript&oldid=23728045
Luokka:
Piilotetut luokat:

[8]ページ先頭

©2009-2026 Movatter.jp