Tieto- ja viestintätekniikan käyttötaito 2.0 → Verkkosivut ja ohjelmointi

© TvtDok

Verkkosivut ja ohjelmointi

  1. HTML:n perusteet
  2. CSS:n perusteet
  3. JavaScriptin perusteet

Verkkosivut ja ohjelmointi

JavaScriptin perusteet

Tässä luvussa

JavaScript on ohjelmointikieli, jota voidaan käyttää HTML:n ja CSS:n kanssa yhdessä verkkosivuja luotaessa. JavaScriptin avulla voidaan verkkosivulle lisätä toiminnallisuutta. JavaScriptiä voidaan käyttää myös pelien ohjelmoinnissa ja mobiilisovellusten luomisessa. JavaScript-ohjelmointikieltä ei tule sekoittaa Java-ohjelmointikieleen.

JavaScript-koodia varten kannattaa luoda oma tiedostonsa. JavaScript-tiedoston tunnistaa .js-tiedostopäätteestä.

JavaScript-koodia voidaan kirjoittaa myös suoraan HTML-tiedostoon joko sijoittamalla JavaScript-koodi <head>- ja </head> -tagin väliin tai varsinaisen HTML-tiedoston sisällön sekaan <body>- ja </body> -tagin väliin merkitsemällä JavaScript-koodi <script>- ja </script> -tagilla. Jos JavaScript-koodin kutsurivi sijoitetaan HTML-tiedostoon varsinaisen sivun sisällön sekaan, se sijoitetaan mahdollisimman loppuun tiedostossa, mutta kuitenkin ennen </body>-tagia. Sijoitus tehdään tiedoston loppuun siksi, että ennen JavaScript-koodin suorittamista ehditään luomaan verkkosivulle kaikki tarvittavat elementit.

Ohjelmoinnin peruspalikat

Muuttujat ja tyypit

Kannattaa lukea tiedon tallennusta ikään kuin oikealta vasemmalle: "Sijoitetaan arvo 25 muuttujaan ika".

Joissain muissa ohjelmointikielissä muuttujan tyyppi tulee kertoa muuttujan määrittelyssä. Esim. C#-ohjelmointikielessä muuttuja alustetaan näin:
int ika = 25;
Muuttujalle ika määritetään tyyppi int eli kokonaisluku. Muita muuttujatyyppejä ovat char (kirjaimet), string (kirjainjono), boolean (totuusarvo, jolloin muuttuja saa arvon true tai false) ja long (liukuluku/desimaaliluku). JavaScriptillä ohjelmoitaessa tyyppimäärityksiä ei kuitenkaan tarvitse tehdä.

Muuttuja on tietokoneen muistista varattu alue, johon voidaan tallentaa tietoa. Muuttuja alustetaan (eli kerrotaan tietokoneelle, että muistista varataan alue) tunnisteella var. Alustamisen lisäksi muuttajaan tallennetaan jokin arvo. Esimerkiksi muuttujaan ika voidaan heti muuttujan julistamisen yhteydessä tallentaa luku 25:

var ika = 25;

Muuttuja voidaan myös alustaa aiemmin alustettujen muuttujien avulla:

var vanhempi = ika + 20;

Tällöin muuttujan vanhempi arvo olisi 25+20 eli 45.

Tee tehtävä muuttujista TIM-ohjelmointiympäristössä

Ehtolauseet

Suorien komentojen lisäksi ohjelmoinnissa voidaan määrittää toimintoja erilaisilla ehdoilla. Ehtojen käyttäminen tapahtuu if-, else ja if-else-ehtolauseilla.

If-ehtolause:
If-ehtolauseen avulla voidaan verkkosivulle lisätä esimerkiksi toiminta, jossa verkkosivun kävijä toivotetaan tervetulleeksi tietyn kellonajan mukaan. Tällöin tietokoneen pitää tehdä toiminta:
Tarkista kellonaika. Jos kello on vähemmän kuin 18.00, toivota kävijälle "Hyvää päivää!".

Koodina vastaava toiminta näyttää tältä:

if (kello < 18:00) { tervehdys = "Hyvää päivää!"; }

Ehtona toiminnassa on siis tietty kellonaika ja toiminnan toteutumiseksi tämän ehdon täytyy toteutua eli olla tosi.

If-else-ehtolause:
Tarkistettava ehto voi myös jäädä toteutumatta, jolloin ehto on epätosi. Myös toteutumattomalle ehdolle voidaan määritellä toiminta. Tämä voidaan toteuttaa If-else-ehtolauseen avulla:
Tarkista kellonaika. Jos kello on vähemmän kuin 18.00, toivota "Hyvää päivää!"
Muuten toivota "Hyvää iltaa!".

Koodina vastaava toiminta näyttää tältä:

if (kello < 18:00) { tervehdys = "Hyvää päivää!"; } else { tervehdys = Hyvää iltaa!"; }

If-else-ehtolauseella voidaan määritellä myös useampi vaihtoehtoinen toiminta:
Tarkista kellonaika. Jos kello on vähemmän kuin 11.00, toivota "Hyvää huomenta!".
Muuten jos kello on vähemmän kuin 20.00, toivota "Hyvää päivää!".
Muuten toivota "Hyvää iltaa!".

Koodina vastaava toiminta näyttää tältä:

if (kello < 11:00) { tervehdys = "Hyvää huomenta!"; } else if (kello < 20:00) { tervehdys = "Hyvää päivää!"; } else { tervehdys = "Hyvää iltaa!"; }

Tee tehtävä ehtolauseista TIM-ohjelmointiympäristössä

Silmukat

Silmukoita käyttämällä voidaan toistaa sama koodi useamman kerran. Näin haluttu toiminta saadaan ohjelmoitua lyhyemmällä koodilla ja tehokkaammin. Silmukoita voidaan tehdä for- ja while-silmukoilla.

For-silmukka:
For-silmukassa tiettyä toimintaa toistetaan niin kauan kuin tietty ehto on tosi.

For-silmukan syntaksi on seuraavanlainen:

for (alustuslauseke; ehtolauseke; kasvatus-/vähennyslauseke) { toiminta }

Joskus ohjelmoitaessa eteen tulee tilanne, jolloin kirjoitettua koodiriviä ei tarvitakaan ja se halutaan poistaa. Koodirivi halutaan kuitenkin säilyttää tiedostossa tallessa esimerkiksi myöhempää käyttöä varten. Tällaisten koodirivien säilöminen on helpointa tehdä kommentoimalla koodirivi piiloon. JavaScript- ohjelmointikielessä kommentti asetetaan kirjoittamalla kaksi kauttaviivaa peräkkäin (eli //) koodirivin eteen. Kommentoimalla voidaan myös tarkentaa koodin lukijalle esimerkiksi algoritmin toimintaa, kuten while-silmukan esimerkissä on tehty.

Alustuslausekkeena on yleisesti muuttujan arvon asettaminen. Ehtolausekkeena on ehto, jonka mukaan silmukka jatkaa toimintaansa. Ehtolausekkeen tulee olla sellainen, että silmukan suoritus päättyy jossain vaiheessa tai muuten tuloksena on ikuinen silmukka. Viimeisenä on kasvatus-/vähennyslauseke, joka määrittää, mitä suoritetun toiminnan jälkeen tehdään. Toiminnan jälkeen yleensä kasvatetaan tai vähennetään alustuslausekkeessa määritettyä muuttujaa.

Tehdään laskuri, joka tulostaa luvut 0-10 väliltä:

var luku = 0; for (var i = 0; i<11; i++) { luku = i; console.log(luku); }

Silmukkaa voidaan myös hyödyntää verkkosivujen tekemisessä. Sen sijaan, että lisätään kuvia useaan kertaan HTML-koodina

<div class="kuvat"> <img src="kuva1.jpg" alt="kuva1" /> <img src="kuva2.jpg" alt="kuva2" /> <img src="kuva3.jpg" alt="kuva3" /> <img src="kuva4.jpg" alt="kuva4" /> <img src="kuva5.jpg" alt="kuva5" /> </div>

voidaan lisääminen tehdä silmukan avulla. Kuvia voisi olla useampi, jopa satoja, jolloin silmukan käyttö olisi vielä hyödyllisempää. Koska edellisessä esimerkissä lisättäviä kuvia on viisi, voidaan tehdä silmukka, joka toistuu viisi kertaa:

for (var i = 1; i < 6; i++) { var kuvat += '<img src="kuva"' + i + '.jpg" alt="kuva' + i + '" />'; } document.getElementById.innerHTML("kuvat") = kuvat;

innerHTML

innerHTML-metodi on käytännöllinen sisällöltään suppeampien HTML-tiedostojen muuttamiseen. Silmukkaesimerkissä kysytään ensin HTML-tiedostosta löytyvää tunnistetta, jonka nimi on kuvat. Tämän jälkeen määritetään tunnisteeseen liittyvä sisältö uudestaan. Silmukkaesimerkissä siihen sijoitetaan silmukassa luodut kuviin liittyvät koodirivit.

Ensimmäisellä rivillä alustetaan silmukka. Ensin asetetaan muuttujan arvoksi 1, sitten ehdoksi, että muuttujan arvo on pienempi kuin 6 ja lopuksi jokaisella kierroksella kasvatetaan muuttujaa yhdellä.

Toisella koodirivillä lisätään jokainen kuva yksitellen silmukan avulla, kuvan numero muuttuu aina välissä.

Silmukan ulkopuolella sijoitetaan kuvat-muuttujan sisältö HTML-elementtiin, jonka tunniste on "kuvat".

While-silmukka:
Myös while-silmukassa tiettyä toimintaa toistetaan niin kauan kuin tietty ehto on tosi. While-silmukan syntaksi on kuitenkin erilainen kuin for-silmukan:

while (ehto) { toiminta, joka suoritetaan ehdon ollessa tosi }

esimerkiksi

var i=0; // alustetaan muuttuja i:n arvoksi nolla while (i<5) { // kun i on pienempi kuin 5 print.log(i); // tulosta konsoliin i i++; // kasvata i:n arvoa yhdellä }

Tee tehtävät silmukoista TIM-ohjelmointiympäristössä

Yhteenveto

Tehtävä

Tee aiemmissa luvuissa työstämille kotisivuillesi etusivulle tervehdys, joka muuttuu kellonajan mukaan. Jos käyttäjä tulee kotisivuille ennen keskipäivää, tervehdys on "Hyvää huomenta!". Jos taas käyttäjä tulee kotisivuille ennen klo 18, tervehdys on "Hyvää päivää!". Jos kumpikaan edellisistä ehdoista ei täyty, tervehdys on "Hyvää iltaa!".

  1. Tee kotisivujesi etusivun HTML-tiedostoon tyhjä otsikkoelementti, jolle annat tunnisteen eli id:n "tervehdys".
  2. Luo JavaScript-tiedosto: alusta tiedostoon tervehdys-niminen muuttuja sekä aikaNyt-niminen muuttuja. Tallenna tiedosto ja linkitä se HTML-tiedostoosi lisäämällä HTML-tiedoston head-osioon <script type="text/javascript" src="" ></script> -koodirivi. Sijoita src-attribuutiin JavaScript-tiedostosi nimi, esim. skripti.js.

JavaScriptissä saadaan tieto tämän hetkisestä ajasta aikaolion avulla. Aikaolio palauttaa ajan seuraavassa tekstimuodossa:
Mon Dec 03 2018 12:00:21 GMT +0200 (EET)
eli viikonpäivä kuukausi päivänumero vuosi kellonaika aikavyöhyke.

Uuden aikaolion luominen tapahtuu kirjoittamalla koodirivi:
new Date();

  1. Luo Javascript-tiedostossasi uusi aikaolio, jonka sijoitat aikaNyt-muuttujaan.

Aikaolion avulla voidaan myös kysyä aika tarkemmassa muodossa valmiilla metodeilla. Pelkkiä tunteja voidaan kysyä metodilla getHours, jolloin saadaan tieto sen hetkisen ajan tunneista numerona (0-23). Tuntien kysyminen tapahtuu kirjoittamalla koodirivi:
aikaNyt.getHours();

  1. Alusta JavaScript-tiedostoon tunti-niminen muuttuja. Selvitä aikaolion avulla tämän hetkisen ajan tunnit. Sijoita tuntien kysyminen tunti-muuttujaan.
  2. Tee JavaScript-tiedostossa if-else -ehtolause, jolla määrität kotisivuilla näkyvän tervehdyksen. Käytä ehtolauseessa hyväksi tunti-muuttujaa ja sen arvoa.
  3. Sijoita ehtolauseen sisällä määritelty tervehdys (esim. "Hyvää huomenta!") tervehdys-muuttujaan. Sijoita sitten tervehdys-muuttuja aiemmin esitellyllä innerHTML-metodilla HTML-tiedostoosi hyödyntäen otsikon id:tä "tervehdys".
  4. Testaa vielä kotisivusi toimintaa. Tuleeko sivulle kellonajan mukainen tervehdys?