Analys av de 20 uppgifterna.

  1. Beräknar och skriver ut 20-2*32+4/2*3, d v s 8.

  2. Beräknar och skriver ut 1.4142135623730951 (närmevärde till kvadratroten ur 2).

  3. Deklarerar en variabel x, sätter x=3, utför beräkningen y=x*x+2*x+10 och skriver ut resultatet, d v s 25.

  4. Simulerar kast med tärning m h a JavaScripts slumptalsfunktion. (6*Math.random()+1) genererar ett slumptal mellan 1 och 6.999... och Math.floor() avrundar till närmaste lägre heltal (prova gärna med ett negativt decimaltal och se vad som händer). Det erhållna talet motsvarar naturligtvis antalet uppkomna prickar vid tärningskastet. Kör det korta programmet några gånger och försäkra dig om att det verkligen fungerar.

  5. Evaluerar det logiska uttrycket true && false (true AND false) och skriver ut resultatet. För att ett uttryck innehållande AND skall vara true krävs att båda leden är true. Eftersom ett av leden (det högra) är false blir uttrycket alltså false.

  6. Evaluerar det logiska uttrycket false || true (false OR true) och skriver ut resultatet. För att ett uttryck innehållande OR skall vara true räcker det att ett led är true. Eftersom ett av leden (det högra) är true blir uttrycket alltså true.

  7. Evaluerar det logiska uttrycket !false (NOT false) och skriver ut resultatet true. Jämför det i normalt språkbruk förekommande "not true", d v s "false". Ytterst få lär emellertid säga "It's not false" för att beskriva något som är "true". :-)

  8. Deklarerar en variabel karnstridsspetsar, sätter karnstridsspetsar=true (d v s karnstridsspetsar blir en logisk variabel) och använder en if-sats för att avgöra vilken av två strängar som skall skrivas ut, i detta fall "Ligg ner & njut!". Prova att sätta karnstridsspetsar=false och se vad som händer.

  9. Sätter variablerna lisa=170 och sophie=150 (underförstått att det handlar om pengar och att de båda flickorna lagt ut 170 respektive 150 kronor på en gemensam utgift om 320 kronor), avgör m h a av en if-sats vem av de båda vännerna som står i skuld till den andra (i vårt fall är det Sophie), beräknar hur stor skulden är och skriver ut "Sophie är skyldig Lisa 10 kr"

  10. Motsvarar punkt 9 men användaren ges möjlighet att mata in beloppen.

  11. Låter användaren skriva in en text (namn, t ex Bengt), utnyttjar den i JavaScript inbyggda metoden toUpperCase för att omvandla tecknen i strängen till versaler och skriver ut "HEJ BENGT!".

  12. while-loop som genomlöps 20 (!) gånger (tänk noga igenom hur det borde bli och jämför med resultatet på skärmen. Varför exekveras inte programsatserna 21 gånger? OBS! Fenomenet har sina rötter djupt ned i datorns inre och beror på att data internt lagras i binär form) med x som loopvariabel. Initialt sätts x=0 och inkrementeras därefter med 0,1 för varje varv. y tilldelas värdet x*x+2*x+10 och satsen s += x + ", " + y + "\n" skapar en sträng bestående av x (inklusive eventuella decimaler och decimalpunkt), ett kommatecken plus mellanslag, y (på samma sätt som x) och avslutningsvis en radbrytning.

  13. Fungerar som punkt 12 men utnyttjar en for-loop.

  14. Som punkt 13 men med lämpligare inkrementering av loopvariabel.

  15. Som punkt 14 förutom att användaren kan mata in ett eget uttryck. Prova!

  16. Nedräkning från 10 till 1, avslutas med utskrift av texten "BOOM!".

  17. Utskrift av multiplikationstabellen t o m 9*9. Lägg märke till de nästlade for-looparna och skapandet av strängen.

  18. Låter användaren mata in ett tal x och beräknar x*x+2*x+10. Detta upprepas tills en tom sträng matas in (d v s användaren direkt trycker på RETURN/klickar på OK), trycker på ESC eller klickar med musen på Cancel. Skriv en bokstav istället för en siffra och försök förklara resultatet (NaN=Not a Number).

  19. Använder slumptalsfunktionen i JavaScript för att sätta bakgrundsfärgen i fönstret. 256*Math.random() ger ett slumptal mellan 0 och 255.9999... och Math.floor avrundar till närmaste lägre heltal (prova gärna med ett negativt decimaltal och se vad som händer), vilket resulterar i ett slumptal mellan 0 och 255. toString(16) omvandlar talet i decimalform till en sträng i hexadecimalform (basen 16). Två omvandlingar äger således rum samtidigt; från det decimala till det hexadecimala talsystemet och från siffervärde till sträng.

    Detta måste utföras tre gånger eftersom det krävs en röd, grön och blå komponent för varje färg. Av den anledningen har koden samlats i en funktion rndHex som lätt kan anropas önskat antal (tre) gånger. Den slutgiltiga strängen, på konventionellt HTML-vis i formatet #RRGGBB, skapas även den i en egen funktion rndBgColor varifrån de tre anropen av rndHex görs och färgen sätts m h a JavaScripts inbyggda document.bgColor. Således avslutas kodsnutten med ett enda enkelt anrop av rndBgColor som sätter igång allting.

  20. Väljer slumpmässigt ut en av sju uppräknade bakgrundsfärger. Även här utnyttjas Math.random och Math.floor, men det nya är att det framtagna slumptalet fungerar som index i en vektor innehållande de sju färgerna.