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)