Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia



Samankaltaiset tiedostot
JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Alkuun HTML5 peliohjelmoinnissa

Java-kielen perusteet

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

Java-kielen perusteet

JavaScript alkeet Esimerkkikoodeja moniste 2

JavaScript alkeet Esimerkkikoodeja moniste 3 (Metropolia 11/2011)

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

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Tietotyypit ja operaattorit

Java-kielen perusteet

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Ohjelmoinnin perusteet Y Python

Java-kielen perusteita

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

Digitaalisen median tekniikat. Luento 4: JavaScript

Ohjelmoinnin perusteet Y Python

Ehto- ja toistolauseet

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

Digitaalisen median tekniikat JavaScript

Digitaalisen median tekniikat JavaScript Harri Laine 1

Listarakenne (ArrayList-luokka)

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

Ohjelmoinnin peruskurssi Y1

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

JavaScript alkeet. Intro Muuttujat Dialogi boxit. Metropolia 2011

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

ITKP102 Ohjelmointi 1 (6 op)

Digitaalisen median tekniikat JavaScript_osa Harri Laine 1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Digitaalisen median tekniikat JavaScript_osa2

Harjoitustyö: virtuaalikone

HTML-ohjeet. Sivun perusrakenne <HTML> <HEAD> <STYLE TYPE="text/css"> ...tänne tulee CSS-koodi eli sivun ulkonäkö määritykset...

Kielioppia: toisin kuin Javassa

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Luento 5. Timo Savola. 28. huhtikuuta 2006

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

ICT1TN004. Skriptikielet. Heikki Hietala

Ohjelmoinnin perusteet Y Python

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

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

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Ohjelmoinnin peruskurssien laaja oppimäärä

13. Loogiset operaatiot 13.1

Algoritmit 1. Demot Timo Männikkö

PHP tehtävä 3 Atte Pekarinen TIKT13A

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Merkkijonon tutkiminen matches-metodilla

11 JavaScript Mikä JavaScript on?

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

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Palvelinpuolen ohjelmointi

JSP (JavaServer Pages) tekniikka Lähde Arvo Lipitsäinen, JSP JavaServer Pages, 2003

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmoinnin jatkokurssi, kurssikoe

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Muuttujat ja kontrolli. Ville Sundberg

ICT1TN004. Lomakkeet. Heikki Hietala

Ohjelmoinnin perusteet Y Python

Python-ohjelmointi Harjoitus 2

Algoritmit 1. Demot Timo Männikkö

1 PHP-sovelluksen toiminta

1. luento. Ohjelmointi (C) T0004 Syksy luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

13. Loogiset operaatiot 13.1

Olio-ohjelmointi Syntaksikokoelma

Ohjelmoinnin perusteet Y Python

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Flash ActionScript osa 4

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8.

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Verkkosivut perinteisesti. Tanja Välisalo

Ohjelmoinnin perusteet Y Python

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

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

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

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

Lisätehtävät. Frantic 2015 sivu 1

Ohjelmoinnin perusteet Y Python

HTML5 video, audio, canvas. Mirja Jaakkola

Olio-ohjelmointi Javalla

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Mikä yhteyssuhde on?

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

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Ehto- ja toistolauseet

Ohjelmoinnin perusteet Y Python

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Transkriptio:

Javascript 2: Ohjelmointikielen ominaisuudet Jaana Holvikivi Metropolia

HTML - sivun rakenne ja osiot HTML HEAD STYLE SCRIPT STYLEsheet Javascript file BODY <elementti Javascript> Javascript <elementti style> 28..2 Jaana Holvikivi 2

Ohjelmointikielen perusosia Tietotyypit Vakiot Muuttujat Lausekkeet Operaattorit Käskyt ja lauseet: sijoitus, ehtolause, silmukat Tapahtumat Funktiot Metodit 28..2 Jaana Holvikivi 3

Vakiot Tietotyypit Javascriptissä Luvut / Numbers.44 (ei erikseen kokonaislukuja) Merkkijonot / Strings document.write ("Tervehdys"+mj); lainausmerkeissä (joko ' tai ") Null "tyhjä" <input value="paina" type="button" onclick="alert('heippa')"> String literals alert("i am an alert box!! \n\t Man!"); käytetään silloin kun HTML ei käytössä, tuottaa rivinvaihdon Totuusarvot / Boolean values true, false 28..2 Jaana Holvikivi 4

Muuttujat var i=, result = ; // = sijoitus, ei yhtäläisyys for (i = ; i <= ; i++) { result += i; document.write(i + ": " + result + "<br/>"); var i = arvoksi määritellään muuttuja ja asetetaan sen Var a, A; JavaScript erottelee isot ja pienet kirjaimet "case sensitive" Määritelty muuttuja on lokaali eli paikallinen Ei saa käyttää varattuja sanoja muuttujan nimenä 28..2 Jaana Holvikivi 5

Merkkijonot (strings) Esimerkkejä metodeista, joilla voidaan käsitellä merkkijonoja; mj = "kissa"; toinen ="la" mj.length arvo 5 mj.touppercase() mj.charat() mj.substring(,3) yhdistäminen: mj + toinen KISSA k kiss kissala 28..2 Jaana Holvikivi 6

Listat (arrays) munlista = [8, 4, 7, 6, 5] munlista.length saa arvon 5 munlista[] sisältää luvun 8 uusi = munlista.sort() Sisältää listan [4,6,7,8,5] Listat voivat sisältää erilaisia tietotyyppejä 28..2 Jaana Holvikivi 7

<h2> Kuvan vaihtelua </h2> Esimerkki kuvia sisältävän listan käytöstä <p> <img src="kuvat/kuva.gif" /> <script> var i, frame = ; var timerid; var pics= new Array (); // ensin pitää muodostaa Image-olioiden lista for (i=; i < pics.length ; i++){ pics[i] = new Image(); //sijoitetaan kuvat tähän listaan eli haetaan ne palvelimelta for (i=; i < pics.length ; i++){ pics[i].src = "kuvat/kuva" + i + ".gif"; function vaihtele () { document.images[].src = pics [frame].src; //images[] viittaa sivun ensimmäiseen kuvapaikkaan frame = ( + frame); //aloitetaan timerid uudelleen kutsumalla käsittelijää vaihtele() timerid = settimeout('vaihtele()', 8); </script> 28..2 Jaana Holvikivi 8

Lausekkeet (expressions) ja käskyt i <= vertailulauseke saa arvon tosi tai epätosi "tulos on" + summa merkkijonolauseke Käsky eli statement: timerid = settimeout('vaihtele()', 8); ; komennon loppumerkki, parasta käyttää aina 28..2 Jaana Holvikivi 9

Operaattorit Matemaattiset operaattorit + yhteenlasku x+=y vastaa yhteenlaskua x=x+y x++ sama kuin x=x+ - Vähennyslasku * Kertolasku / Jakolasku % Jakojäännös Vertailu, Comparison Operators, tulos true tai false == yhtäsuuri kuin!= erisuuri kuin 5!=8 tuloksena "true" < pienempi kuin > suurempi kuin >= suurempi tai yhtä suuri kuin <= pienempi tai yhtä suuri kuin 28..2 Jaana Holvikivi

Operaattorit Loogiset vertailut && AND OR! NOT TULOS AND OR NOT 28..2 Jaana Holvikivi

Ehtolause/ Conditional statement if (!Math.random ) // funktion olemassaolon testaus { document.write('<p>weather called off </p>'); else if ( Math.floor((Math.random()*2)) == ) { document.write ("<b>it's just awful. </b>"); else { document.write ("<i>how wonderful it is!</i>"); 28..2 Jaana Holvikivi 2

Silmukat / Loops for (i = ; i <= ; i++) { result += i; document.write(i + ": " + result + "<br/>"); Laskurin kasvattaminen (Increment) i=i+ tai i++ 28..2 Jaana Holvikivi 3

Sisäkkäiset silmukat var heads =, tails = ; var i, j; for (j = ; j <= 5; j++) { for (i = ; i < ; i++) { if ( Math.floor ((Math.random()*2)) == ) heads = heads + ; else tails = tails + ; document.write ("Heads: "+heads+ </br> "Tails : " +tails+ " "<p>"); heads= ; tails = ; 28..2 Jaana Holvikivi 4

Silmukat var x = ; var result = ; while ( x <= ) // toistetaan kunnes x> { result += x; x++; alert ("The result is " + result + " and x is " + x ); 28..2 Jaana Holvikivi 5

Funktiot Valmiit funktiot alert() prompt() parseint() parsefloat() Math.sqrt() Math.floor() Math.round() tuottaa kokonaisluvun tuottaa lukuarvon neliöjuuri pyöristys alaspäin pyöristys 28..2 Jaana Holvikivi 6

Funktiot: Käyttäjän määrittelemät function Capitalize(mjono) //palauttaa merkkijonon, jonka alkukirjain on isolla { var firstletter, reststring, cap; firstletter = mjono.charat(); reststring = mjono.substring(, mjono.length); cap= firstletter.touppercase() + reststring.tolowercase() return cap; Tämä funktio siis palauttaa mjonon arvoksi cap-arvon. 28..2 Jaana Holvikivi 7

Funktiot: käyttäjän määrittelemät Tulostusta HTML-sivulle: Tämä funktio kirjoittaa numeroita tekstialueeseen textarea. <head> <script> function countdown() { var count; count = document.getelementbyid("countbox").value; document.getelementbyid("tulostusta").value =""; while (count > ){ document.getelementbyid("tulostusta").value = document.getelementbyid("tulostusta").value + count + "\n"; count = count -; document.getelementbyid("tulostusta").value = document.getelementbyid("tulostusta").value + "hep!"; </script> </head> <body> <p>mistä luvusta lähtölaskenta aloitetaan? <input type ="text" id ="countbox" size = "3" value= "9"/> </p> <p><input type ="button" value= "Aloita lähtölaskenta" onclick ="countdown();"/> </p> <p> <textarea id="tulostusta" rows="2" cols="8"> </textarea> </p> </body> 28..2 Jaana Holvikivi 8

Metodit close() getelementbyid() getelementsbyname() getelementsbytagname() open() document.write() Sulkee tulostuksen, joka on aloitettu document.open() metodilla, näyttää datan Palauttaa viittauksen ens. Objektiin, jolla on annettu id Palauttaa joukon nimen mukaisia objekteja Palauttaa joukon elementin mukaisia objekteja Avaa tulostusputken document.write() or document.writeln() metodeille Kirjoittaa HTML tai JavaScript koodia dokumenttiin 28..2 Jaana Holvikivi 9

Tapahtumankäsittelijät onabort käyttäjä keskeyttää sivun lataamisen onclick käyttäjä painaa oliota onfocus käyttäjä aktivoi olion onblur osoitin poistuu oliosta onerror onselect onchange onmouseover onkeypress onload olion lataaminen on suoritettu onsubmit käyttäjä lähettää lomakkeen onunload settimeout(), cleartimeout() ajoitus tulevaan hetkeen 28..2 Jaana Holvikivi 2

Event onload() <html> </html> <head> </head> <title>ajax Foundations: javascript and DOM</title> <script type="text/javascript" src="morejsdom.js"> <!-- tiedosto sisältää funktion process --> </script> <body onload="process()"> Hello! Here is a cool list of colors for you: <br/> <div id= " hook" /> </body> 28..2 Jaana Holvikivi 2

morejsdom.js onload() - selostusta function process() // eräs tapa tuottaa tulostusta HTML-sivulle { var string; string="<ul>" + "<li>black</li>" + "<li>red</li>" + "<li>blue</li>" + "</ul>"; var mydiv=document.getelementbyid( hook"); mydiv.innerhtml=string; 28..2 Jaana Holvikivi 22

innerhtml - ominaisuus ESIMERKIKSI: <div id="hook">stories and <h2>headings</h2></div> hook:in innerhtml -property stories and <h2>headings</h2> hook:in outerhtml -property <div id="hook">stories and <h2>headings</h2></div> 28..2 Jaana Holvikivi 23

Esimerkki sivun sisällön muuttamisesta <html> <head> <title>minun tulosteet</title> <script> function process() // eräs tapa tuottaa tulostusta HTML-sivulle { var string; string="<ul>" + "<li>black</li>" + "<li>red</li>" + "<li>blue</li>" + "</ul>"; var mydiv=document.getelementbyid("hook"); mydiv.innerhtml=string; </script> </head> <body> <h> Sivulle tulostusta </h> <h2> </h2> <p> <div id="hook">stories and <h2>headings</h2></div> <input type="button" value="tulosta lista" onclick="process(); "/> </body> </html> 28..2 Jaana Holvikivi 24

Javascript ohjelmointikielenä Olio-orientoitunut: Kaikesta ei tarvitse kirjoittaa omaa ohjelmaa, vaan voi käyttää hyväksi/ luoda luokkakirjastoja, joihin sisältyy olioiden käyttäytymistä DOM sisältää tyyppien hierarkian Joustava funktioiden käyttö OO koodi, virheiden käsittely, erilaisia metodeja ja tyyppihierarkiat JSON object notation, ynnä muuta valmista tukea Google Webtoolkit http://jquery.com/ valmis kirjasto, jossa paljon käyttöliittymäominaisuuksia 28..2 Jaana Holvikivi 25