Tredun ohjelmistokehittäjien kurssimateriaaleja
Taulukkoon voi tallentaa erilaista tietoa: lukuja, merkkijonoja, totuusarvoja, toisia taulukoita, olioita tai jopa funktioita. Tieto sijaitsee taulukossa järjestyksessä, eli taulukon alkioihin voi viitata niiden sijaintiin liittyvällä indeksillä (kokonaisluku, indeksointi alkaa nollasta).
let myList = ["milk", 303, true, 5.5];
Tämän taulukon toinen alkio (luku 303) saataisiin kirjoittamalla:
myList[1];
Taulukon alkion voi korvata sijoittamalla ko. indeksiin jotain muuta:
myList[1] = "uusi arvo";
Taulukon pituus voi vaihdella, siihen voi lisätä uusia alkoita push:in avulla (palauttaa lisätyn alkion indeksin ja lisää uuden alkion taulukon loppuun). Alkioita voi poistaa taulukosta pop:in avulla (palauttaa taulukon viimeisen alkion, ja poistaa sen samalla taulukosta).
myList.push("butter");
myList.pop();
Listan pituuden saa selville length:in avulla.
myList.length;
for-silmukan avulla voidaan toteuttaa toistoa vaativia toimenpiteitä esim. käydä läpi taulukoita. for-silmukka toistaa sen sisään kirjoitettua koodia, kunnes sen ehtona oleva lauseke ei enää ole totta. for-lauseessa ensin alustetaan silmukka (esim. let i=0), sitten kirjoitetaan ehto, joka pitää silmukan toiminnassa, ja lopuksi lauseke, joka päivittää silmukan tilaa (esim. i++):
let myList = [5, 7, 22, 9];
for(let i=0; i < myList.length; i++){
console.log(myList[i]);
}
i on lyehennelmä sanasta index ja kuuluu niihin lyhenteisiin, joiden käyttö on täysin hyväksyttävää varsinkin for-loopissa.
for-loopulla on mahdollista käydä taulukko läpi myös päinvastaisessa järjestyksessä seuraavalla koodilla:
let array = [4, 7, 2, 9, 17];
for(let i = array.length-1; i >= 0; i--) {
console.log(array[i]);
}
map ja foreach ovat metodeja, jotka toimivat taulukoille. Niiden avulla voidaan toteuttaa toistoa vaativia operaatioita helposti (ilman for-looppia). Nämä funktiot ovat ns. higher order-funktioita, mikä tarkoittaa, että niille annetaan parametrina funktio.
Näissä esimerkeissä funktio on annettu nuolifunktiona (lyhyempi):
let list = [1, 2, 3, 4];
let newList = list.map(item => 10 * item);
newList.forEach(item => console.log(item));
Näissä esimerkeissä funktion on annettu perinteisessä muodossa (samat kuin yllä):
let newList = a.map(function(item){ return 10 * item });
newList.forEach(function(item){ console.log(item) });
while saa aikaan silmukan, jossa jotakin tehdään niin kauan, kun sille annettu ehto täyttyy. Jos ehto ei täyty lainkaan, silmukan sisään ei mennä.
let i = 0;
let text;
while (i < 10) {
text += "The number is " + i;
console.log(text);
i++;
}
do while on muunnos tavallisesta while loopista. Ero on se, että siinä don sisällä oleva asia tehdään kerran, ennen kuin tarkistetaan ehdon täyttymistä.
let i = 0;
let text;
do {
text += "The number is " + i;
i++;
}
while (i < 10);
Kun kirjoitetaan monimutkaisempia ehtolauseita, on usein tarve ottaa huomioon useampi ehto kerrallaan. Se onnistuu loogisten operaattoreiden && (and), || (or) ja ! (not) avulla.
Jos molempien ehtojen vaaditaan olevan totta, käytetään &&-operaattoria, jos riittää että yksikin ehdoista toteutuu käytetään ||-operaattoria. Totuusarvon voi käytää toiseksi käyttämällä !-operaattoria. Kaikki seuraavat lausekkeet saavat totuusarvokseen true:
true && true
true || false
!false
JavaScript tukee seuraavia lyhennemerkintöjä:
| Lyhenne: | Merkitys: |
|---|---|
| i++ | i = i + 1 |
| i– | i = i - 1 |
| i += 2 | i = i + 2 |
| i -= 2 | i = i - 2 |
| i *= 10 | i = i * 10 |
| i /= 10 | i = i / 10 |
| i %= 5 | i = i % 5 |
| i **= 3 | i = i ** 3 |
Joskus jos loopissa on jokin vika, on mahdollista, että päädytään ikuiseen looppiin eli koodi toistuu loputtomasti. Minkä tahansa koodin suorittamisen voi keskeyttää konsolissa näppäinyhdistelmällä Ctrl+C.