Datakurser
Aktuell vecka: 48

Tillbaka till toppen

JAVASCRIPT Villkor

Villkor

Jämförelse operatorer

När vi ska jämföra om två variabler innehåller samma tal så använder vi == (OBS! Två likamedtecken) eller tre likamedtecken === (som även testar det är samma datatyp på båda sidorna).

Dubbla likamed-tecken för att testa om x har samma innehåll som y, x==y medans x===y även testar typer.

var x=123, y="123";
x==y ger true men x===y ger false för det är inte samma datatyper i x och y

x != y
x < y
x > y
x <= y
x >= y
testar om x INTE är lika med y, x är mindre än y, x är större än y, x är mindre än eller lika med y, x är större än eller lika med y.


//kod inuti funktionen som anropas

var a,b,c,text,text2;
a=parseFloat(document.getElementById("jsex5divinputone").value); b=parseFloat(document.getElementById("jsex5divinputtwo").value); c=document.getElementById("jsex5divinputone").value; text=""; text2=""; if (a>b) { text = a + " är större än " + b; } else if (a===b) { text = a + " är lika med " + b; } else { text = b + " är större än " + a; } if (a==c) { text2 += "a==c"; } if (a===c) { text2 += "a===c"; } document.getElementById("jsex5div").innerHTML = text+"<br>"+text2;


Logiska operatorer

Använder du när du vill kombinera olika tester med jämförelseoperatorer.
&& är OCH
|| är ELLER
! är INTE


//kod inuti funktionen som anropas

var a,b,c,text;
a=5;
b=3;
c=12;
text="";
if (a>b && a>c) text="a är störst <br>";
else text="a är inte störst <br>";

if (a>b || a>c) text+="a är större än ett eller flera tal <br>";
else text+="a är inte större än något annat tal <br>";

if (a!=b) text+="a är inte lika med b";
else text+="a är lika med b"; 

document.getElementById("jsex4div").innerHTML = text; 

Skillnad mellan if-if och if-else if

En, if - else if, gör att bara en del körs. Om något villkor blivit sant så kommer resten av if - else if satsen att hoppas över. Vid upprepade if-satser så kommer varje if-sats att testas och om de är sanna så kan fler komma att köras.


var x=1; 
if (x===1) {
   x=x+1;
}
if (x===2) {
   x=x+10;
}
console.log (x); ///12

var y=1; 
if (y===1) {
   y=y+1;
}
else if (y===2) {
   y=y+10;
}
console.log (y); //2
    

if - med och utan måsklamrar

Om det saknas måsklamrar { } eftyer en if, else if, else uttryck så innebär det att endast första satsen (instruktionen) efter hör till själva if, else if, else uttrycket.

Visst kan det ibland vara bra att spara plats men ta för vana nu i början att ALLTID skriva ut måsklamrar, även om det bara gäller en instruktion efter.


var x=0;
if (x===1) {
x=x+10;
x=x+20;
}
x=x+50; 
console.log (x); //50
 
var y=0; 
if (y===1) 
y=y+10;
y=y+20;
y=y+50;
console.log (y); //70    

Källor

Webbutveckling 1, Thelin Läromedel & Lars Gunther (2013)

HTML5 & CSS3 FOR THE REAL WORLD, Goldstein, Lazaris, Weyl (Sitepoint 2011)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode(september 2014)

w3schools - javascript

 

Checka din kod

JSHint

Chrome Developer Tool
(F12 eller Ctrl+Shift+I)

Firefox Developer Tool
(F12 eller Ctrl+Shift+K)

En liten film om ovanstående (15 min)

Lösningsförslag

PB

Alrik's