Muuttujia käytetään tiedon tallentamiseen. Niitä tarvitaan silloin, kun tietoa halutaan käsitellä useammassa kohdassa ohjelmaa. Ohjelma voi esimerkiksi aluksi arpoa käyttäjälle nimen, jota käytetään osana ohjelmaan liittyvää tarinaa.
Edellisessä osiossa tulostettiin kaikenlaisia lauseita ja kuviota. Tulostuskomennolle piti antaa tulostettava asia lainausmerkeissä, jotta tietokone ymmärtäisi asian olevan merkkijono. Merkkijonoja voidaan tallettaa muuttujiin.
Jokaisella muuttujalla tulee olla nimi, ja muuttujaa luodessa nimeen liitetään sisältö eli muuttujan arvo. Nimeksi voi valita melkein minkä tahansa sanan.
Merkkijonomuuttujat luodaan kirjoittamalla: var muuttujanNimi = "Muuttujan sisältö"
. Kirjoitimme muuttujan sisällön lainausmerkkeihin, koska halusimme tietokoneen ymmärtävän sen olevan merkkijono. Kun olemme luoneet muuttujan, voimme käyttää sitä kirjoittamalla muuttujan nimen esimerkiksi tulostuskomennon sisään.
var nokkelastiNimettyMuuttuja = "Olen nokkelasti nimetty muuttuja!"
console.log(nokkelastiNimettyMuuttuja)
Yllä olevassa koodinpätkässä loimme muuttujan nimeltä nokkelastiNimettyMuuttuja
ja tulostimme sen. Emme laittaneet tulostuskomennon sisään lainausmerkkejä, koska halusimme kertoa tietokoneelle, että tulostettava asia on muuttuja. Esimerkki tulostaa: Olen nokkelasti nimetty muuttuja!
Osa tehtävien koodista on lukittu. Voit muokata vain vapaita alueita. Lukituissa alueissa on harmaa tausta ja lukitsemattomassa on valkoinen tausta.
salainenViesti
, joka luonnin jälkeen tulostetaan. Valitettavasti kuitenkin viesti on väärä. Muuta tehtävää siten, että viestiksi tulee: Ave Caesar!
.
Eilen oli poutaista.
Haloo? Ei kuulu mitään!
Jos ohjelmassa yritetään käyttää muuttujaa, jota ei ole ennen käyttöyritystä luotu, ohjelma ei tiedä mitä muuttujalla pitäisi tehdä. Tämä johtuu siitä, että tietokone ei voi käyttää muuttujia, joita ei ole vielä nimetty. Tällöin tietokone keskeyttää ohjelman suorituksen. Jos yritetään tulostaa mitä tahansa muuttujaa, jota ei ole luotu:
console.log(muuttujaJotaEiOleLuotu)
Tietokone antaa meille virheen: ReferenceError: muuttujaJotaEiOleLuotu is not defined
. Tämä on tietokonen tapa sanoa, että ohjelmassa yritettiin käyttää muuttujaa nimeltä: muuttujaJotaEiOleLuotu
, ja tietokone ei tunne tämän nimistä muuttujaa. Virheen voi korjata luomalla oikean nimisen muuttujan ennen sen käyttämistä.
var muuttujaJotaEiOleLuotu = "onpas!"
console.log(muuttujaJotaEiOleLuotu)
tulostettavaMuuttuja
, mutta se ei onnistu koska muuttujan luonnissa muuttujan nimeen on tullut kirjoitusvirhe. Korjaa muuttujan nimi siten, että koodi toimii.
etunimi
sisällön. Ohjelma ei toimi, sillä etunimi-nimistä muuttujaa ei ole luotu. Luo muuttuja etunimi
ja aseta sen sisällöksi merkkijono, joka on etunimesi.
Merkkijonoja voidaan yhdistellä toisiinsa. Se onnistuu ketjuttamalla halutut merkkijonot +
-operattorilla. Esimerkiksi kaikki alla olevat koodinpätkät tulostavat: "Hei, mitä kuuluu?".
var hei = "Hei"
var kuuluu = ", mitä kuuluu"
var mitaKuuluu = hei + kuuluu
console.log(mitaKuuluu)
a
ja b
. Yhdistele muuttujia +
-operaattorilla muuttujaan yhdistetty
siten, että tehtävässä tulostuu järkevä lause. Sinun on siis pakko käyttää muuttujia a
ja b
.
a
ja b
.
Saman tulostuksen voi saada aikaan erilaisilla tavoilla.
var hei = "Hei"
var kuuluu = ", mitä kuuluu"
console.log(hei + kuuluu)
console.log("Hei" + ", mitä kuuluu?")
Voimme yhdistellä niin monta asiaa kuin haluamme yhdellä rivillä. Voimme esimerkiksi yhidistellä 3, 4 tai 5 eri merkkijonoa toisiinsa ketjuttamalla ne peräkkäin. Esimerkiksi alla oleva esimerkki tulostaa: "Tämän päivän sää on ehkä poutainen".
var paivan = "Tämän päivän "
var saa = "sää on "
var poutainen = " poutainen "
var yhdistetty = paivan + saa + "ehkä" + poutainen
console.log(yhdistetty)
yhdistetty
siten, että tehtävässä tulostuu järkevä lause.
a
, b
ja c
.
yhdistetty
siten, että tehtävään muodostuu järkevä lause.
Tyypillinen virhe merkkijonojen yhdistämisessä on se, että unohtaa +
-operaattorin jostain kohdasta ohjelmakoodia. Esimerkiksi alla oleva koodi ei toimi.
var paivan = "Tämän päivän "
var saa = "sää on "
var poutainen = " poutainen "
var yhdistetty = paivan + saa + "ehkä" poutainen
console.log(yhdistetty)
Muuttujiin voidaan tallentaa muutakin kuin merkkijonoja. Eräs hyödyllisimmistä asioista, joita voidaan laittaa muuttujiin ovat numerot. Numeroiden etu merkkijonoihin on se, että niillä voidaan helposti tehdä laskutoimituksia ja niiden suuruutta on helppo vertailla keskenään.
Numeromuuttujat luodaan samaan tyyliin kuin merkkijonomuuttujat, paitsi lainausmerkkikohdan tilalle kirjoitetaan haluttu numero ilman lainausmerkkejä. Esimerkiksi alla olevassa esimerkissä luodaan numeromuuttuja nimeltä parasNumero
, jonka arvo on 3
.
var parasNumero = 3
Seuraavissa tehtävissä iso osa ohjelman koodista on piilossa. Näkyvissä on vain ne osat, joita sinun täytyy muokata.
Kokeile ajaa tehtävä. Huomaat, että näytölle avautuu peli, joka on hieman hankala.
Tehtäväpohjassa on määritetty kaksi muuttujaa, jotka määräävät pelihahmon ja rubiinien liikkumisnopeuden. Muuta muuttujien arvoja siten, että pelistä tulee helpompi.
Merkkijonoilla voi yrittää tehdä laskuja, mutta niiden tulokset ovat harvoin haluttuja. Esimerkiksi alla oleva esimerkki tulostaisi: 12
, koska merkkijonoja yhdistellessä merkkijot laitetaan aina peräkkäin.
var eka = "1"
var toka = "2"
console.log(eka + toka)
Jos laskemme saman laskutoimituksen luvuilla, tulostuu oikea vastaus 3
.
var eka = 1
var toka = 2
console.log(eka + toka)
Numeroita voidaan laskea yhteen +
-merkillä, niitä voidaan vähentää toisistaan -
-merkillä, niitä voidaan kertoa *
-merkillä ja niitä voidaan jakaa /
-merkillä.
a
ja b
. Tehtäväpohjassa olevan tulostuskomennon sisällä tehdään laskutoimitus. Korjaa laskutoimitus sellaiseksi, että tulokseksi tulee 12
.
a
ja b
.
Muuttujia voidaan käyttää niin monta kertaa kun halutaan. Esimerkiksi alla oleva koodi tulostaa: 6
.
var a = 2
console.log(a + a + a)
a
ja b
. Tee tulostuskomennon sisään joku laskutoimitus, jonka tulos on 37
. Voit käyttää muuttujia niin monta kertaa kun haluat.
a
ja b
.
Numeromuuttujiin voidaan myös lisätä suoraan lukuja. Alla oleva esimerkki tulostaa luvun 12.
var a = 2
console.log(a + 10)
a
. Tehtäväpohjassa on myös tulostuskomento, missä tulostetaan laskutoimituksen a * 2
tulos. Muuta luku 2
sellaiseksi luvuksi, että laskutoimituksen tulokseksi tulee 45
.
Kun muuttuja on luotu var
-sanan avulla, sen arvoa voidaan vielä myöhemmin muutttaa. Uuden arvon asettaminen muuttujalle onnistuu koodilla muuuttujanNimi = uusiArvo
. Alla olevassa esimerkissä asetetaan muuttujalle uusi arvo. Esimerkki tulostaa 14
.
var a = 6
a = 14
console.log(a)
a
. Aseta sen uudeksi arvoksi 42
.
a
ja b
. Määritä niille uudet arvot siten, että tulostukseksi tulee: Paras numero on 7
.
Ohjelmoinnissa tulee usein vastaan tilanne, jossa haluame muuttaa nykyistä arvoa siten, että uusi arvo tuleekin osittain muuttujan nykyisestä arvosta. Esimerkiksi jos meillä on muuttuja a
, jonka arvo on 2, voimme haluta kasvattaa a
:n arvoa 5
:llä. Tämä onnistuu käyttämällä muuttujan nimeä uudestaan arvoa asetettaessa. Alla oleva esimerkki nostaa a
:n arvoa lukuun 7
.
var a = 2
a = a + 5
a
. Kasvata sen arvoa 214
-kertaiseksi.
x
. Kasvata sen arvoa 351
:llä.
numero
. Muuta muuttujaa kaksi kertaa niin että ensiksi pienennät muuttujan arvoa kolmasosaan ja sitten pienennät muuttujan arvoa 451
:llä. Tehtäväpohjassa on merkitty kommenteilla, missä arvon muutokset tulee tehdä.