Movatterモバイル変換


[0]ホーム

URL:


Mine sisu juurde
Vikipeedia
Otsing

JavaScript

Allikas: Vikipeedia
JavaScript
Faililaiend.js
Paradigmafunktsionaalne,imperatiivne,objektorienteeritud (prototüübipõhine)
Väljalaskeaeg1995
LoojaBrendan Eich
ArendajaNetscape Communications Corporation,Mozilla Foundation
Viimane väljalaseECMAScript 2024 (juuni 2024) Muuda Vikiandmetes
Tüüpiminedünaamiline,nõrk,pardi
Mõjutatud keeltestSelf,C,Scheme,Perl,Python,Java
Mõjutanud keeliObjective-J,JScript,JScript .NET,Node.js,CoffeeScript,ActionScript

JavaScript onNetscape'i loodudobjektorienteeritudprogrammeerimiskeel, mida peamiselt kasutatakse koosHTML'i jaCSS'iga, et veebisaite teha. JavaScript onECMAScripti standardiga defineeritud keele ülemhulk.[1]

Hoolimata nimest pole JavaScriptil kuigi palju ühistJavaga. Mõlemad keeled jagavad küllC-st pärit süntaksit ja on objektorienteeritud, kuid nende erinevused on suuremad kui sarnasused.[2][3]

Ajalugu

[muuda |muuda lähteteksti]

JavaScripti lõiBrendan EichNetscape'is. Algselt kandis keel nimetust Mocha, siis LiveScript ja lõpuks JavaScript.[4] Esimene JavaScripti toega veebibrauser oli 1995. aasta septembris välja lastudNetscape Navigator 2.0 (siis veel LiveScript).[5] 1996. aasta augustis lisas Microsoft JavaScriptiga ühilduva keeleJScript veebibrauserisseInternet Explorer 3.0.

JavaScripti standardiseerisEcma International 1997. aasta juunis nimeECMAScript all.[6] ECMAScript keskendub vaid keeleomadustele, aga JavaScript lisaks ka veebikeskkonnale.

Aastal 2010 on JavaScripti versiooniks 1.8.1. Viimastel aastatel on saanud JavaScripti areng uue tõuke tänuAjax tehnoloogia tähelepanu saamisega.

Ülevaade

[muuda |muuda lähteteksti]

Paljud peavad JavaScripti ülilihtsaks keeleks, mille abil saab lehele väikseid efekte lisada. Tegelikult pakub JavaScript laialdasi võimalusi väheste, kuid võimsate keelevahenditega.[3]

  • Keel on läbivalt objektorienteeritud: peaaegu kõik andmetüübid (numbrid, stringid, massiivid, funktsioonid) on objektid.
  • Keeles on vaid üks numbriline andmetüüp: 64 bitineujukomaarv. Täisarvutüüp puudub.[7]
  • Puuduvadklassid, objektide konstrueerimine ja ka pärilikkus toimub prototüüpide põhjal kasutades konstruktorfunktsioone.[8]
  • Objektid on lihtsad nimi-väärtus paaride kogud naguPerli jaRuby paisktabelid võiPythoni sõnaraamatud.[9]
  • Toetatud onkõrgemat järku funktsioonid jasulundid.
  • Puudub sisendi ja väljundi kontseptsioon, sestskriptimiskeelena on mõeldud jooksma teiste programmide sees.[9]

Kõige laialdasemalt kasutatakse JavaScripti veebilehtedel. Seda peetakse koguni maailma populaarseimaks programmeerimiskeeleks.[10] Kuid brauserid pole JavaScripti ainuke keskkond.

Väljaspool veebi on JavaScript kasutusel näiteksAdobe Readeris (JavaScriptPDF-failides) jaAdobe Photoshopis. Arendamisel onOpenOffice.org-i makrode kirjutamise võimalus JavaScriptiga. Iga rakendus pakub enda sisseehitatud objekte, mille abil saab operatsioone teha (brauserites on selline objekt window).

Süntaks

[muuda |muuda lähteteksti]

JavaScripti süntaks pärineb suurestiC-st, millest on üle võetud if- ja switch-tingimuslaused, for- ja while-tsüklid ja -operaatorid.Javast pärinevad throw- ja try-catch-konstruktsioonid erindite viskamiseks ja püüdmiseks.

Hello world

[muuda |muuda lähteteksti]

Hello world on programm, mis avab dialoogiakna:

alert("Hello world");

Alternatiivne variant, mis kirjutab teksti otse veebilehele:

document.write("Hello world");

Objektid ja massiivid

[muuda |muuda lähteteksti]

Massiivide loomiseks saab kasutada eraldi literaali:

varmyArray=[2,3,5,7,11];

Samuti objektide jaoks:

varmyObject={name:"John",age:15};

Nii massiivide kui ka harilike objektide liikmetele pääseb ligi C-st tuttava konstruktsiooniga:

myArray[1];// tagastab 3myObject["name"];// tagastab "John"

Lisaks saab nimekujulistele liikmetele ligi punkt-notatsiooniga:

myObject.name;// tagastab "John"myArray.length;// tagastab 5 (massiivi pikkuse)

JavaScripti objektide ja massiivide süntaksil põhinebJSON (JavaScript Object Notation) andmevahetusvorming,[11] mida kasutatakse ohtralt koosAjaxiga.

Funktsioonid

[muuda |muuda lähteteksti]

Funktsioone luuakse funktsiooniliteraali abil:

functionfactorial(n){if(n>1){returnn*factorial(n-1);}else{return1;}}

Funktsioonile saab panna nime, nagu näites on tehtud, kuid saab kasutada kaanonüümseid funktsioone. Viimaseid on hea anda parameetritena kõrgemat järku funktsioonidele. Näiteks järgmise koodiga sorteeritakse massiivi kasutades võrdlemiseks anonüümset funktsiooni:

[4,7,1,3,6].sort(function(a,b){returna>b?1:(a<b?-1:0);});

Üks levinud anonüümsete funktsioonide kasutus on kohalike muutujate globaalsesse nimeruumi sattumise vältimine. Selleks mähitakse kogu kood ühe suure anonüümse funktsiooni sisse, mis kohe käivitatakse:

(function(){// ...kogu kood siia...})();

Konstruktorfunktsioonid ja prototüübid

[muuda |muuda lähteteksti]

Kui on vaja luua mitu sarnaste omadustega objekti, luuakse esmalt konstruktorfunktsioon, mille prototype atribuut määrab ära loodavate objektide jagatud tunnused:

functionPerson(name){this.name=name;}Person.prototype={greet:function(person){alert("Hello "+person.name+", my name is "+this.name);}};

Seejärel saab new-operaatori abil luua objekte, mis viitavad konstruktorfunktsiooni Person prototüübile:

varjohn=newPerson("John");varmary=newPerson("Mary");john.greet(mary);// väljastab: Hello Mary, my name is Johnmary.greet(john);// väljastab: Hello John, my name is Mary

Siiani näeb kõik välja nagu klassipõhises objektorienteeritud programmeerimises. Kuid Person pole siiski klass, vaid hoopis dünaamilisem kooslus. Näiteks võime Personi prototüüpi jooksvalt täiendada ning kõik muudatused kajastuvad automaatselt selle konstruktoriga loodud objektides:

Person.prototype.age=25;john.age;// tagastab: 25mary.age;// tagastab: 25

Objektid aga võivad prototüübis defineeritud välju üle kirjutada:

john.age=82;john.age;// nüüd 82mary.age;// endiselt 25Person.prototype.age;// endiselt 25

Või luua uusi välju:

john.nationality="Estonian";john.nationality;// tagastab: "Estonian"mary.nationality;// tagastab: undefined

Kaasamine veebilehele

[muuda |muuda lähteteksti]

JavaScripti kaasamiseksHTML-dokumenti kasutatakse <script>-elementi:

<scripttype="text/javascript">document.write('Terekest!');</script>

Alternatiivne variant on linkida <script>-elemendi abil eraldi JavaScripti faili:

<scripttype="text/javascript"src="script.js"></script>

Enamasti kaasatakse JavaScript lehele tavalise lähtekoodi kujul. Mahukamaid faile minimeeritakse, et vähendada allalaaditavat andmehulka ja kiirendada veebilehe laadimist.[12]

Mitte kõik brauserid ei toeta JavaScripti ja ka nendel, mis toetavad, saab selle välja lülitada. Kuna pole garanteeritud, et leheküljel olev JavaScript lehe avanedes käivitub, saab kasutada JavaScripti nii, et see üksnes täiustab ilma JavaScriptitagi toimivat lehekülge.[13]

Turvalisus

[muuda |muuda lähteteksti]

Sageli lülitavad kasutajad brauseril JavaScripti toe välja. Seda tehakse peamiselt turvalisuse pärast. Veebilbrauser lubab skriptile küll õige vähe. Muuhulgas keelab see kohalikule kettale ligipääsu, väliste koodide käivitamise, ligipääsu dokumentidele, mis ei asu samas serveris, ligipääsu külastatud lehtede nimekirjale (selle hoolimata lubab eelnevalt külastatud lehtedele tagasi suunata), kõvakettalt faili üleslaadimist, kui kasutaja ise ei ole failinime esitanud, ja sulgeda akent, mida pole avanud Javascripti (selleks küsitakse kasutajalt luba).

Silumine

[muuda |muuda lähteteksti]

Arendamisel tekivad tavaliselt raskused erinevate brauserite toega. Tihti ei puuduta see keeleomadusi, vaid väljendub erinevate objektide omaduste ja funktsioonide näol. Programmeerimise hõlbustamiseks on välja töötatud mitmesuguseid silumisvahendeid:

Viited

[muuda |muuda lähteteksti]
  1. "About JavaScript" MDC, 4. aprill 2010
  2. Peter-Paul Koch:"JavaScript vs. Java" 4. aprill 2010
  3. 3,03,1Douglas Crockford:"#" 4. aprill 2010
  4. JavaScript History & Information, XMLuk.org
  5. The History of JavaScript[alaline kõdulink]
  6. ECMA-262 Edition 1 (PDF)
  7. Douglas Crockford:"A Survey of the JavaScript Programming Language" 4. aprill 2010
  8. Douglas Crockford:"Prototypal Inheritance in JavaScript" 4. aprill 2010
  9. 9,09,1A re-introduction to JavaScript MDC
  10. Douglas Crockford (5. aprill 2010)."#".
  11. www.json.org
  12. "Google Page Speed Performance Best Practices: Minify JavaScript".Originaali arhiivikoopia seisuga 8. oktoober 2011. Vaadatud 4. aprillil 2010.
  13. Unobtrusive JavaScript
  14. Venkman JavaScript Debugger project
  15. Script Debugger for Windows NT 4.0 and Later
  16. Internet Explorer Developer Toolbar
  17. Opera Dragonfly
  18. "Introducing Dosera – Surfin' Safari".Originaali arhiivikoopia seisuga 30. august 2011. Vaadatud 4. aprillil 2010.
  19. Developer Tools for Google Chrome

Välislingid

[muuda |muuda lähteteksti]
Veebitehnoloogiad        
Tehnoloogiad
AjaxCGICSSDOMJavaScriptDHTMLHTML (XHTMLHTML5) •HTTP (HTTPS)
Osad
Veebistandardid
CSS  •DOM  •HTML  •HTML5  •JavaScript  •MathML  •SVG  •XHTML  •WebGL
Seotud teemad
Veeb  •Internetikomplekt  •Mobiilne internet  •SPDY  •HTTP  •HTTPS  •SSL/TLS  •WebSocket  •XML
Lauaarvuti
Geckol põhinevad
WebKitil põhinevad
Tridentil põhinevad
Blinkil põhinevad
Tekstipõhised
Lynx  •w3m
Muud
Pärit leheküljelt "https://et.wikipedia.org/w/index.php?title=JavaScript&oldid=6535328"
Kategooriad:
Peidetud kategooriad:

[8]ページ先頭

©2009-2025 Movatter.jp