20-2*32+4/2*3
, d v s 8.
x
, sätter x=3
, utför beräkningen
y=x*x+2*x+10
och skriver ut resultatet, d v s 25.
(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.
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.
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.
!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". :-)
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.
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"
toUpperCase
för att omvandla tecknen i
strängen till versaler och skriver ut "HEJ BENGT!".
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.
for
-loop.
for
-looparna och skapandet av strängen.
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).
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.
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.