JavaScript alkeet. Intro Muuttujat Dialogi boxit. Metropolia 2011



Samankaltaiset tiedostot
Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Digitaalisen median tekniikat. Luento 4: JavaScript

Java-kielen perusteet

Java-kielen perusteet

MITÄ JAVASCRIPT ON?...3

Digitaalisen median tekniikat JavaScript

Digitaalisen median tekniikat JavaScript Harri Laine 1

05/04/2004. Digitaalisen median tekniikat, k2004 HY/TKTL, javascript_1. Harri Laine 1. JavaScript

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

JavaScript alkeet Esimerkkikoodeja moniste 2

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Digitaalisen median tekniikat JavaScript_osa Harri Laine 1

Digitaalisen median tekniikat JavaScript_osa2

ICT1TN004. Skriptikielet. Heikki Hietala

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Aulikki Hyrskykari. JWT Hyrskykari, SIS, Tampereen yliopisto 4/23/2014

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

Digitaalisen median tekniikat xhtml - jatkuu

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

ICT1TN004. Lomakkeet. Heikki Hietala

Lomakkeet HTML5. Elina Ulpovaara. Testaus: IE9 Firefox7 Opera11 Chrome

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

Verkkosivut perinteisesti. Tanja Välisalo

OPPITUNTI 3 Ensimmäinen skripti

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

13. Hyvä ohjelmointitapa (osa 1) 13.1

Digitaalisen median tekniikat xhtml - jatkuu

Ohjelmointiharjoituksia Arduino-ympäristössä

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Java-kielen perusteet

Palvelinpuolen ohjelmointi

Java-kielen perusteita

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Alkuun HTML5 peliohjelmoinnissa

Internet-pohjaisen oppimisympäristön laadinta. Luento 3

Ohjelmoinnin perusteet, syksy 2006

PHP:n alkeita ja taustaa. Markus Norrena

Harjoitustyö: virtuaalikone

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

- Komposiittityypit - Object (Mukaanlukien funktiot) - Array. - Erikoisdatatyypit - null - undefined

Olio-ohjelmointi Javalla

Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

18. Abstraktit tietotyypit 18.1

7. Näytölle tulostaminen 7.1

Metodien tekeminen Javalla

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Ohjelmoinnin jatkokurssi, kurssikoe

1. Omat operaatiot 1.1

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Harjoitus 2: Oppijan aktivointi ( )

JavaScript alkeet Esimerkkikoodeja moniste 3 (Metropolia 11/2011)

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

Java-kielen perusteita

Ohjelmoinnin perusteet Y Python

11 JavaScript Mikä JavaScript on?

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Python-ohjelmointi Harjoitus 2

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Ohjelmoinnin peruskurssien laaja oppimäärä

Muuttujien määrittely

Ohjelmoinnin peruskurssien laaja oppimäärä

5/20: Algoritmirakenteita III

Harjoitus 2 (viikko 45)

13. Loogiset operaatiot 13.1

Ohjelmoinnin peruskurssi Y1

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Proseduraalinen dokumentti: sisältö, rakenne ja ulkoasu yhdessä, esim. worddokumentti

14. Hyvä ohjelmointitapa 14.1

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

Internet-pohjaisen oppimisympäristön laadinta. Luento 3

12. Javan toistorakenteet 12.1

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Ohjelmoinnin peruskurssi Y1

Zeon PDF Driver Trial

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.

Mainonnanhallinta Käyttöopastus. Tekniikka. Olli Erjanti Mediareaktori

Ohjelmoinnin perusteet Y Python

9. Periytyminen Javassa 9.1

Ohjelmoinnin peruskurssi Y1

C# Windows ohjelmointi perusopas

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Harjoitus 4 (viikko 47)

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

12. Javan toistorakenteet 12.1

4. Lausekielinen ohjelmointi 4.1

VeRan laboratoriotietojen siirtoformaatti

Transkriptio:

JavaScript alkeet Intro Muuttujat Dialogi boxit Metropolia 2011

* Monissa websivuissa käytetään JavaScriptiä. *JavaScript kehitettiin v. 1995 Netscapessa (LiveScript) *Html on staattinen: JavaScript mahdollistaa interaktiivisuuden. *JavaScript on laitteisto (platform) riippumaton, *JavaScript pyörii selaimessa. Selaimessa oleva tulkki tulkitsee koodin.

*Syntaksi on samankaltainen kuin C:ssä, Perl:ssä, Java:ssa *Olio-ohjelmointia (object oriented) *tulkittu kieli, selain tulkitsee koodin. *JavaScript on tiukasti nivoutunut HTML merkkauskielen kanssa *kurssilla käsitellään client side javascriptiä. *JavaSriptiä voidaan käyttä myös monissa muissa konteksteissa kuin selaimessa (Photoshop, OpenOffice, Max-MSP, jne.)

*JavaScript ei ole HTML koodia, mutta sijoitetaan HTML koodin sisälle. *JavaScript ei ymmärrä HTML kieltä mutta html koodia voidaan sijoittaa JavaScriptin sisään. *Olioperustaista (Object based), mutta ei tiukasti tulkittuna puhdasta olioohjelmointia (ei tue suoraan periytyvyyttä, eikä siinä ole luokkia.)

JavaScriptin käyttö: *interaktio hiiren kanssa: roll-over kuvat, dialogi boxit, navigaation monipuolistamiseen, käytettävyys, ajax *lomakkeen syötteen tarkistus (esim. onko syötetty tieto muodollisesti validi) *selaimen pluginien tarkistus *evästeet *dynaaminen HTML koodien ja sisältöjen muokkaus * lomake-elementtien mahdollistama vuorovaikutus sivulla

JavaScriptin interaktiiviset toiminnot laukaisee tapahtumat. Tapahtumat ovat osa HTML koodia. Ensimäinen koodi: <html> <head><title>tapahtuma</title></head> <body> <form> <input type ="button" value = "Nipistä minua" onclick="alert('aauuggghh!!')" > </form> </body> </html>

*onclick tapahtumakäsittelijä on form html tagin yksi atribuutti *onclick tapahtumakäsittelijälle on annettu arvo, joka on ohjelmakäsky: alert Tapahtumien listaa: onabort kuvien latautuminen keskeytyy onblur tehdään ei-aktiiviseksi onchange elementin arvoa muutetaan ja se ei enää ole aktiivinen onclick hiiren klikkaus onfocus kun hiirtä klikataan tai siirretään ja tehdään elementti aktiiviseksi onload dokumentti tai kuva on latautunut onmouseout hiiri ulos onmouseover hiiri elementin päällä onsubmit kun lomake halutaan lähettää palvelimelle onunload kun dokumentti tai frameset on suljettu tai reset?

JavaScript versiot: JavaScript 1.0 NN 2.0, IE 3.0 JavaScript 1.1 NN 3.0, IE 4.0 JavaScript 1.2 NN 4.0-4.05. IE 4.0 JavaScript 1.3 NN4.06-4.7, IE 5.0 JavaScript 1.5 NN 6.0+, Mozilla, IE 5.5+ ECMA spesifikaatio: Netscape työskentelee European Computer manufacturers Association kanssa ja on luonut kansainvälisen JavaScript standardin, jota kutsutaan ECMA Scriptiksi.

1.6. minne JavaScript sijoitetaan HTML dokumentissa? Html dokumentin rakenne: <html> <head> <title>a Document</title> </head> <body> sivun sisältö </body> </html> Th

JavaScript koodi menee <script> tagin sisään <script> tagi menee <head> ja <body> tagin sisään (joskus pieniä pätkiä on myös HTML tägin sisällä) Koodi voi myös olla erillisessä tiedostossa.js päätteellä Koodi head tagissa <html> <head> <title>a Document</title> <script type= text/javascript > //script statement(s) here... </script> </head> <body> </body> </html>

Koodi body tagissa <html> <head> <title>a Document</title> </head> <body> <script type= text/javascript > //script statement(s) here... </script> </body> </html>

Koodi head ja body tagissa <html> <head> <title>a Document</title> <script type= text/javascript > //script statement(s) here... </script> </head> <body> <script type= text/javascript > //script statement(s) here... </script> </body> </html>

Koodi esimerkki 1.2. <html> <head><title>ensimäinen JavaScript Sample</title> </head> <body bgcolor="yellow" text="blue"> <script language = "JavaScript" type="text/javascript"> document.writeln("<h2>tervetuloa JavaScriptin maailmaan!</h1>"); </script> Tämä on pelkkää HTML:lää. </body> </html>

JavaScriptin syntaksi *JS Case sensitive *HTML:ssä ei ole väliä käytetäänkö isoja vai pieniä kirjaimia *jotkut JavaScriptin elementit käyttävät kumpiakin isoja ja pieniä kirjaimia (esim onclick, Date.getFullYear) välilyönnit: -JavaScript jättää välilyönnit huomiotta, jos ne ovat sanojen välissä var name= Mikko ; var name = Mikko ;

Varatut sanat JavaScriptissä on muutamia varattuja sanoja -näitä ei voi käyttää muuttujina, funktioina tai labeleina (labels) (abstract, boolean, break, byte, case, catch.. with)

Ohjelmalauseet (statements) ohjelmalauseet on hyvä lopettaa puolipisteellä ; Kommentit // tämä on kommentti /* tämä on kommentti blokki, joka jatkuu useita rivejä */

<script> tag <script> tagin attribuutit: language, type, src <script language= JavaScript > (HTML 4. jälkeen vanhentunut tapa) <script language= JavaScript1.5 > (jos haluaa spesifioida mitä JavaScript versiota käyttää type atribuutti: spesifioi skriptauskielen ja internetin sisältö tyypin <script type= text/javascript > src atribuutti: spesifioidaan ulkoisen javascript tiedoston nimi <script language= JavaScript type= text/javascript src= koodia.js >

HTML koodin generointi JavaScriptissä Merkkijono (String) Merkkijonot tulee asettaa lainausmerkkien sisään joko yksinkertaisella tai kaksinkertaisella lainausmerkillä Sisäkkäin olevat lainausmerkit vuorottelevat keskenään: yksikertaiset voivat olla kaksinkertaisten sisällä ja päinvastoin Esim. tämä on merkkijono this is a string all that I have learn'd

+ & write() + merkillä voidaan merkkijonoja yhdistää tekstiä, html koodia hattu + temppu tai Vantaa + <br> write() ja writeln() metodit write() metodi tuottaa html koodia samalla kun selain tulkitsee nettisivua. Sulkeet sisältävät argumentin metodi & argumentti write( tämä teksti tulostuu selaimeen );

dokumenttiolio Nykyinen dokumentti on dokumenttiolio. Kun tähän olioon viitataan ja halutaan manipuloida sitä metodilla metodi lisätään olion perään pistenotaatiolla. document.write( terve! );

Koodiesimerkki 2.1 <html><head><title>tulostusta HTML- sivulle</title></head> <body bgcolor="yellow" text="blue"> <b>vertaillaan <em>document.write</em> ja <em>document.writeln </em> metodeja</b><br> <script language="javascript"> document.write("<h3>thales, "); // ei uutta riviä document.writeln("herakletos, "); document.writeln("parmenides, "); document.write("platon...<br>"); // rivin vaihto tagi document.write("selaimesi on " + navigator.useragent + "<br>"); </script> <pre> <script language="javascript"> document.writeln("<em>html <pre></em> tagin kanssa, "); document.writeln("<em>writeln</em> metodi tuottaa uuden rivin.") document.writeln("huh"); document.writeln("hah"); document.writeln("hei!"); </script> </pre> </body> </html>

Debuggaus Virheet latauksessa Yleisimmät virheet Estävät skriptin toiminnan Virheet syntaksissa kuten puuttuvat sulut tai avainsana on väärin kirjoitettu Virheet ohjelman käydessä: -latautumisen jälkeen jokin ei toimi Loogiset virheet ohjelma toimii, mutta ei halutulla tavalla.. JavaScript URL protocol (esim. javascript:5+4 ) JavaScript consoli esim. Chromessa: hiiren 2 nappi > tarkastele elementtiä > Console

Ohjelman Rakennuspalikat: datatyypit, vakiot ja muuttujat Ohjelma prosessoi dataa ja datatyypit määrittelevät sen minkälaista dataa prosessoidaan. JavaScriptissä on kaksi perustietotyyppiä. Alkeistietotyypit ja oliotietotyypit (Date, Math jne.). Alkeistietotyypit: numerot merkkijonot boolean arvot (loogiset totuusarvot) erityis datatyypit, jotka koostuvat yhdestä ainoasta arvosta: nolla (null) tai määrittelemätön (undefined) -kokonaisluvut -desimaaliluvut luvut voidaan esittää: decimal, octal, hexadecimal

Merkkijonot & erikoismerkit tämä on merkkijono 5 on merkkijono 5 on numero Escape Sequences (erikoismerkit) \ lainausmerkki \ \t sarkain \n rivinvaihto newline \r palautus rivin alkuun \f sivun vaihto \b askelpalautin \e escape \\ backslash \xxx latin-1 ASCII - Merkki \XXX Latin-1 enkoodaus \uxxxx Unicode 2 merkistön merkki

Koodiesimerkki 3.2 <html><head></head> <body> <pre> <font size="+2"> <script language="javascript"> <!-- piiloita vanhoilta selaimilta. document.write("\t\tterve\nmaailma!\n"); document.writeln("\"kaunis päivä tänään.\"\n"); document.writeln('ja hymy huuleen häivähtää: \u263a\n'); // piiloituksen lopetus. --> </script> </pre> </body> </html>

document.write(typeof(true),"<br>"); / / Boolean </script> </head> </html> typeof operator -palauttaa merkkijonon, joka identifioi operandin tyypin Koodiesimerkki 3.3 <html> <head> <title> typeof operaattori</title> <script language="javascript"> document.write(typeof(55),"<br>"); // Number document.write(typeof("tervehdys"),"<b r>"); // String

Muuttujat *muuttujalle annetaan arvoja *muuttujaan varastoidaan tietoa *muuttuja on tiedon symbolinen nimi, jonka arvo on muutettavissa *muuttujat ovat olennainen osa ohjelmaa, Ne ovat virtuaalisia ohjelman muistielementtejä, jotka sisältävät dataa *muuttujilla on nimi, tyyppi ja arvo num = 4; // nimi on num, arvo on 4, tyyppi on numeerinen *kolme muuttuja tyyppiä: numeerinen merkkijono (String) Boolean (looginen) *JavaScriptissä ei tarvitse erikseen eritellä mikä datatyyppi muuttujalla on käytössä (kuten C++ ja Javassa) JavaScript tekee sen automaattisesti

Muuttujan määrittely *Muuttujan nimi koostuu vapaasta määrästä kirjaimia ja numeroita (alleviivaus on kirjain ) Ensimäisen merkin on oltava kirjain tai _ Isolla ja pienellä kirjaimella on väliä (Case sensitive) * käytä kuvaavia sanoja, varattuja sanoja ei voi käyttää, ei välilyöntejä *alleviivaus tai iso kirjain merkitsemään toisen sanan alkua *ensimäinen kirjain ei voi olla numero Avainsana var Var muuttujan_nimi = arvo; // alustettu Var muuttujan_nimi ; // alustamaton muuttujan_nimi ; //väärin!!!!! var etunimi = Harri ; etunimi = Harri ; var etunimi;

null ja undefined -näiden ero on hienovarainen -null tarkoittaa ei arvoa ei mitään (ei edes tyhjä merkkijono tai nolla) -sillä voidaan tyhjentää muuttujan arvo -kun muuttujalle annetaan null arvo, se ei sisällä mitään validia datatyyppiä -kun muuttuja määritellään mutta sille ei anneta alkuarvoa se sisältää arvon undefined ja tuottaa virheen, jos sitä käytetään jos muuttuja määritellään ja sille annetaan arvo null, se toimii muistipaikkana (placeholder) eikä aiheuta virhettä

Dialogi boxit *Interaktiiviset ohjelmat toimivat kahdessa perustoiminnossa: ottavat tietoa sisään ja antavat ulos *write() ja writeln() metodit lähettävät palautetta selaimelle ja käyttäjälle *metodi Javascriptissä tarkoittaa tekemistä, aktia, se on Javascriptisssä toimija. Metodit suorittavat asioita. *Javascriptissä voi käyttää dialogiboxeja vuorovaikutteisuuden luomiseksi käyttäjän kanssa. *Javascriptissä on 3 metodia dialogiboxeille: alert() prompt() confirm()

Formaatti: Alert( teksti merkkijono ); Alert(lauseke); Esimerkki: Alert ( sulje kännykkä ); Alert(a + b); Koodiesimerkki 4.1 <html> <head><title>dialog Box</title></head> <body bgcolor="yellow" text="blue"> <b>testataan alert metodia</b><br> <script language="javascript"> document.write("se on Hegel, "); document.write("eikun Nietzsche, <br>"); alert("se on Snellman!"); </script> </body> </html>

Koodiesimerkki 4.2 <html> <head> <title> JavaScript alert box:n käyttö</title> <script language="javascript"> alert("nyt kaikki joukolla \njavascriptiä ohjelmoimaan!"); var message1="tarkkaile heittomerkkejä"; var message2=" ja niitä kirjoitus erheitä"; alert(message1 + message2); </script </head> </html>

Prompt box Javascriptissä ei ole yhtä yksinkertaista tapaa datan syötölle. Voidaan käyttää prompt-boxia tai HTML lomaketta Propmt-boxi sisältää tekstikentän Kun käyttäjä kirjoittaa tekstikenttään tekstiä, palautuu tämä arvo ohjelmalle. Prompt boxi ottaa sisään kaksi argumenttia (tekstimerkkijono, joka yleensä sisältää kysymyksen ja tekstikentän oletusarvotekstin) FORMAATTI prompt(viesti); prompt(viesti, oletusarvoteksti); esim. prompt( Mikä sinun nimesi on? ); prompt( Kuka oli suurin filosofi?, Sokrates );

Confirm box Confirm box (vahvistus ikkuna) Confirm boxia käytetään kysymyksen vahvistamiseen. Ikkunassa on kysymys ja kaksi nappulaa (Cancel & OK) OK nappula palauttaa Boolean arvon true ja Cancel palauttaa arvon false.

Koodiesimerkki 4.4 <html> <head> <title> JavaScript prompt box:in käyttö</title> </head> <body> <script language = "JavaScript"> var nimi=prompt("mikä on nimesi?", ""); document.write("<br> Tervetuloa maailmaani! "+ nimi + ".<br>"); var ika=prompt("mikä on ikäsi?", "ikä"); if ( ika == null){ // jos käyttäjä painaa cancel nappulaa alert("ikäsi lienee salaisuus?"); } else{ alert(ika + " vuotta. Oletpa sinä vielä nuori!"); } alert(prompt("missä asut?", "")); </script> <body> </html>