Osan sisältönä on:
- muuttujat, tarkemmin niiden käyttäminen
- operaattorit ja aritmetiikka, miten niitä käytetään muuttujien kanssa
- muuttujan arvon muuttaminen asettaminen ja sijoittaminen (assignment)
Muuttujien määrittely, arvon sijoittaminen muuttujaan sekä laskutoimituksen tekeminen:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h2>Muuttujien yhteenlasku ja tuloksen näyttäminen</h2>
<p id="laskuA"></p>
<script>
var luku1 =3;
var luku2 = 11;
var tulos = luku1 + luku2;
document.getElementById("laskuA").innerHTML =
"Luku1 + Luku2 = " + tulos;
</script>
</body>
</html>
HUOM! Koodauksen alussa muuttujien määrittely ja laskutoimitus
voidaan tehdä myös seuraavalla tavalla:
var luku1 =3;
var luku2 = 11;
var tulos = 0;
tulos = luku1 + luku2;
Tulos www-sivulla:
<p id="testi2"></p>
<script>
var PII = 3.14;
var teksti1 = "Desimaaliluku";
var teksti2 = 'on piin likiarvo.';
document.getElementById("testi2").innerHTML =
teksti1 + " " + PII + " " + teksti2 +
"
Aika helppo esimerkki ?";
</script>
HUOM ! Muuttujia voi määritellä myös seuraavasti:
var Asiakas12 = "Jokunen Jaska", taso = "Kulta", alennusprosentti = 7.5;
tai sama eri riveillä:
var Asiakas12 = "Jokunen Jaska",
taso = "Kulta",
alennusprosentti = 7.5;
Tulos www-sivulla:
Huomaa seuraavat erikoistapaukset :
<p id="testi3"></p>
<script>
var ajopeli = "Aston Martin";
var ajopeli; //arvo sijoitettu edellisellä rivillä
var ajoPeli; //muuttujan nimi kirjoitettu erilailla
var tulos= 1 + 9 + "10"; //laskutoimitus ja perään liitetty numero
document.getElementById("testi3").innerHTML =
ajopeli + "<br>" + ajoPeli + "<br>" + tulos;
</script>
Tulos www-sivulla:
Esimerkki, yksi-ulotteinen taulukko :
<p id="testiC"></p>
<script>
var merkit = ["Maybach","Ferrari","Aston Martin"];
document.getElementById("testiC").innerHTML =
merkit[2] + "<br>" +
merkit[1] + "<br>" +
merkit[0] + "<br><br>" +
"Koska taulukon 1.solun numero on ohjelmointikielissä 0 solu <br>" +
"on kolme arvoa sisältävän taulukon 2.solun numero 2.";
</script>
Tulos www-sivulla:
Esimerkki, kaksi-ulotteinen taulukko :
<p id="taulu"></p>
<script>
var cars = [["Saab", "Volvo", "BMW" ],
["Opel", "Ford" ,"Skoda"]];
var rivi = 0;
var sarake = 2;
document.getElementById("taulu").innerHTML =
"Taulukon solusta: " + cars[1][1] + "<br>" +
"Solusta muuttujilla: " + cars[rivi][sarake] + "<br>" +
"Koko taulukko: " + cars;
</script>
Tulos www-sivulla:
Esimerkki, objektien käyttäminen "taulukossa" :
<p id="tiedot"></p>
<script>
var henkilö = {etuNimi:"Kalle", sukuNimi:"Koskinen", ikä:46};
document.getElementById("tiedot").innerHTML =
"Henkilötiedot:" + "<br>" +
henkilö["etuNimi"] + "<br>" +
henkilö["sukuNimi"] + "<br>" +
henkilö["ikä"];
</script>
Operaattoreilla voidaan:
- sijoittaa muuttujaan arvo, esim var luku = 12;
- sijoittaa muuttujaan muilla muuttujilla suoritettu laskutoimituksen tulos, esim var luku = arvo1*arvo1;
- sijoittaa muuttujaan muistaa muuttujista yhdistetty tieto
- suorittaa muuttujien avulla vertailuja ja loogisia operaatioita
Operaattori | Selite | Esimerkki |
---|---|---|
+ | Yhteenlasku | var tulos = luku1 + luku2; |
- | Vähennyslasku | var tulos = luku1 + luku2; |
* | Kertolasku | var tulos = luku1 * luku2; |
/ | Jakolasku | var tulos = luku1 / luku2; |
% | Jakojäännös | var tulos = luku1 % luku2; |
++ | Luvun kasvatus numerolla 1 | kierros++; |
- - | Luvun pienentäminen numerolla 1 | kierros--; |
Operaattori | Selite | Esimerkki |
---|---|---|
= | Sijoittaa annetun tiedon | tulos = 100; sijoittaa tulos-muuttajaan luvun 100 |
+= | Sijoittaa yhteenlaskun tuloksen | luku1 += luku2; laskee luku1 + luku2 ja sijoittaa tuloksen luku1-muuttujaan |
-= | Sijoittaa yvähennyslaskun tuloksen | luku1 -= luku2; laskee luku1 - luku2 ja sijoittaa tuloksen luku1-muuttujaan |
*= | Sijoittaa kertolaskun tuloksen | luku1 *= luku2; laskee luku1 * luku2 ja sijoittaa tuloksen luku1-muuttujaan |
/= | Sijoittaa jakolaskun tuloksen | luku1 /= luku2; laskee luku1 / luku2 ja sijoittaa tuloksen luku1-muuttujaan |
%= | Sijoittaa jakojäännöksen tuloksen | luku1 %= luku2; laskee luku1 % luku2 ja sijoittaa jakojäännöksen luku1-muuttujaan |
<p id="testi4"></p>
<script>
var x = 10;
x *= 0.02;
var luku1 = 11, luku2 = 2;
luku1%=luku2;
document.getElementById("testi4").innerHTML =
"Laskun tulos x-muuttujassa " + x + "<br>" +
"Jakojäännös luku1-muuttujassa " + luku1 + "<br>" ;
</script>
Tulos www-sivulla:
<p id="testi5"></p>
<script>
var teksti = "Sanojen ";
teksti = teksti + "yhdistely ";
var sana = "onnistuu";
sana += " näinkin !
";
var arvio = "Onnistumisesta täysi ";
arvio+= "10";
document.getElementById("testi5").innerHTML =
teksti + sana + arvio;
</script>
Tulos www-sivulla:
Vertailu-operaattoreita käytetään ehto-rakenteissa ja toisto-lauseissa.
Operaattori | Selite | Esimerkki |
---|---|---|
== | "Onko yhtäsuuria.." | luku1 == luku2; |
=== | "Onko yhtäsuuria ja saman tyyppisiä.." | luku1 === luku2; |
!= | "Onko eri suuria.." | tulos != luku2; |
!== | "Onko eri suuria tai eri tyyppisiä.." | luku1 !== luku2; |
> | "Onko suurempi kuin.." | luku1 > luku2; |
< | "Onko pienempi kuin.." | luku1 < luku2; |
>= | "Onko suurempi tai yhtäsuuri kuin.." | luku1 >= luku2; |
<= | "Onko pienempi tai yhtäsuuri kuin.." | luku1 <= luku2; |
? | What ??? | ????? |
Lisää Vertailu-operaattoreista.
Lisää Ehto-rakenteista.
Lisää Toisto-lauseista.
Myös loogisia-operaattoreita käytetään ehto-rakenteissa ja toisto-lauseissa.
Operaattori | Selite | Esimerkki |
---|---|---|
&& | looginen JA jolla voidaan yhdistää kaksi tai useampi lauseke | luku1 == 10 && luku2 < 12 |
|| | looginen TAI jolla voidaan yhdistää kaksi tai useampi lauseke | luku1 > luku2 || luku1 < luku3 |
! | looginen NOT "kääntään toden epätodeksi" | !(tulos = luku2) |
Lisää Loogisista-operaattoreista.
JS sisältää vielä enemmänkin spesiaaleja operaattoreita joilla voidaan tutkia tiedon tyyppiä tai operoida bitti-tasolla.
Lisää Tyyppi-operaattoreista.
Lisää Bitti-operaattoreista.
JavaScript pystyy käsittelemään useita data tyyppejä numeroiden, merkkijonojen ja objektien lisäksi.
Huomaa ettei tietokone voi käsitellä turvallisesti esimerkiksi virheellisellä tavalla yhdistettyä numeroa ja merkkijonoa.var kerroin = 4.5;
data-tyypiltään numero (number)var sukuNimi = "Virtanen";
data-tyypiltään merkkijono (string)var nimi_1 = {etuNimi:"Ville", sukuNimi:"Vallaton"};
data-tyypiltään objektin (object)
var tulos = 12 + " on tusina"; Virheellinen tapa !! var tulos = "12" + " on tusina"; Oikea tapa !!
<p id="testi6"></p>
<script>
//1. esimerkki:
var teksti1 = 12 + " on tusina"; //mahdollista, ei turvallista
var teksti2 = "12" + " on tusina"; //turvallien tapa
var teksti3 = "Tusina on" + 12; //mahdollista, ei turvallista
var teksti4 = 7 + 5 + " on tusina"; //mahdollista, ei turvallista
var teksti5 = "Tusina on" + 7 + 5; //mahdollista, ei turvallista
//2. esimerkki:
var luku_2; // luku_2 sisältö tuntematon
luku_2 = 5; // luku_2 sisältö luku 5
luku_2= "Ville"; // luku_2 sisältö merkkijono Ville
//3. esimerkki, lainnaus- ja heittomerkkien näyttäminen:
var teksti6= "It's easy !"; // Sanaan kuuluu heittomerkki
var teksti7= "Lempinimi 'player'"; // Sanassa heittomerkki
var teksti8= 'Lempinimi "player"'; // Sanassa lainnausmerkki
//4. esimerkki, exponettien käyttäminen numeroiden esittämisessä
var luku_3 = 123e7;
var luku_4 = 123e-7;
document.getElementById("testi6").innerHTML =
teksti1 + "<br>" +
teksti2 + "<br>" +
teksti3 + "<br>" +
teksti4 + "<br>" +
teksti5 + "<br><br>" +
luku_2 + "<br><br>" +
teksti6 + "<br>" +
teksti7 + "<br>" +
teksti8 + "<br><br>" +
luku_3 + "<br>" +
luku_4;
</script>
Alla toimiva script:
<p id="testi7"></p>
<script>
var luku1 = 5;
var luku2 = 5;
var luku3 = 6;
document.getElementById("testi7").innerHTML =
(luku1 == luku2) + "<br>" +
(luku1 == luku3) + "<br><br>" +
"Koska luku1 = luku2 tulostuu true.<br>" +
"Koska luku1 < luku3, tulostuu false.";;
</script>
Objekti on "muuttuja" joka sisältää joukon muuttujiin sijoitettua tietoa:
<p id="testiD"></p>
<script>
var henkilo = {
etuNimi : "Jussi",
sukuNimi : "Jokela",
asuinKunta : "HELSINKI",
postiNumero : '00910'
};
document.getElementById("testiD").innerHTML =
"Osallistuja:
" +
henkilo.sukuNimi + " " + henkilo.etuNimi + "<br>" +
henkilo.asuinKunta + " " + henkilo.postiNumero;
</script>
Tulos www-sivulla:
Yllä olevassa esimerkissä postinumeroa ei voi sijoittaa mumerona 00910, vaan se on sijoitettava merkkijonona !
typeof operaattori ja sen käyttäminen tiedon tyypin tutkimisessa.
Esimerkeissä typeof
-operaattorilla tiedon tyyppejä:
<p id="testiE"></p>
<script>
var henkilo = "Jussi"; //tutkittava tieto muuttujaan
var tyyppi = typeof henkilo; //tutkitaan muuttujassa olevaa tietoa
var laatikko; //tutkittava "tyhjä muuttuja"
document.getElementById("testiE").innerHTML =
"Tutkitaan teksti-tietoa:
" +
tyyppi + " - muuttujassa oleva tieto
" +
typeof "" + " - tyhjämerkki
" +
typeof "Jaska Jokunen" + " - merkkijono
" +
"Tutkitaan numero-tietoa:
" +
typeof 0 + " - numero 0
" +
typeof 314 + " - numero 314
" +
typeof 3.14 + " - desimaaliluku 3.14
" +
typeof (3) + " - suluissa numero 3
" +
typeof (3 + 4) + " - numeroiden laskutoimitus (3+4)
" +
"Kurkistetaan 'laatikkoon':
" +
typeof laatikko + " - tyhjä muuttuja
" +
laatikko + " - muuttuja
" +
"Vielä muutama tieto tutkitaan:
" +
typeof {name:'john', age:34} + " - objekti
" +
typeof [1,2,3,4] + " - taulukko jossa numeroita
" +
typeof null + " - null arvo
" +
typeof function omaOhjelma(){} + " - aliohjelma kutsu";
</script>
Tulos www-sivulla: