Javascript : Operatoren

  1. Toekenning
  2. Vergelijking
  3. Getalwaarden: isNaN, parseInt en parseFloat
  4. Compacte if: ... ? ... : ...
  5. Wiskundige operatoren
  6. Booleaanse operatoren
  7. Bitniveau operatoren
  8. Oefeningen

Toekenningsoperatoren

Het gelijkheidsteken = heeft in Javascript een heel andere betekenis dan in de wiskundelessen.

Deze operator gebruik je in Javascript voor het toekennen van een waarde aan een variabele:

var a = 6;
var b = 10;
var c = a + b;
Eerst wordt aan a de waarde 6 en aan b de waarde 10 toegekend. Daarna berekenen we de som van a en b en kennen die waarde toe aan de variabele c.

Je kan deze operator ook combineren met wiskundige operatoren:

var a = 6;
var a += 3;
var b = 10;
b *= a;

Eerst wordt aan a de waarde 6 toegekend, daarna hogen we de waarde van a met 3 op. Het statement a += 3 kan je eigenlijk voluit schrijven als a = a + 3 : we verhogen a met drie.

We stoppen de waarde 10 in variabele b. Daarna gaan we het product van b met a in de variabele b stoppen: b *= a is voluit: b = b * a.

Vergelijkingsoperatoren

Gelijk / niet gelijk

Een gelijkheid zoals we kennen uit de lessen wiskunde wordt in Javascript uitgedrukt met twee gelijkheidstekens (==):
var a = 6;
var b = 7;
if (a==b) document.write ('a en b zijn gelijk')
else document.write ('a en b zijn niet gelijk')

Om een ongelijkheid te testen gebruik je de operator != waarbij ! de not-operator is.

identiek / niet identiek

Het identiek zijn van twee variabelen of waarden betekent dat niet alleen hun waarde maar ook hun type gelijk is.

De operator om het identiek zijn van twee variabelen te testen is het trippele gelijkheidsteken === . De negatie is !== .

'42' is niet identiek aan 42 daar '42' een String is en 42 een number.

groter / kleiner

<, >, <=, >= : kleiner, groter, kleiner of gelijk, groter of gelijk.

Het resultaat van een dergelijke test is steeds true of false.

var a = 6;
var b = 7;
if (a<b) document.write ('a is kleiner dan b');
else if (a>b) document.write ('a is groter dan b');
else document.write ('a en b zijn gelijk');

Deze operatoren kan je ook toepassen op string-variabelen, je kan nu bvb. testen of een woord alfabetisch voor een ander woord komt.

Getalwaarden

isNaN

In toepassingen is het dikwijls nodig om na te gaan of bepaalde variabelen getallen bevatten.

De functie isNaN retourneert true als het argument Not a Number is, geen numerieke waarde. De functie isNaN retourneert false als het argument een numerieke waarde bevat.

document.write(isNaN("Een tekenreeks") +"<BR>");
document.write(isNaN("348") +"<BR>"); 
document.write(isNaN(348) +"<BR>");
document.write(isNaN(0/0) +"<BR>");

parseInt

Met de functie parseInt kan je cijfers van een tekenreeks afkappen. Begint de tekenreeks niet met cijfers dan retourneert parseInt NaN: Not a Number.

Deze functie wordt vaak gebruikt om kommagetallen af te kappen tot gehele getallen.

document.write("<BR>" + parseInt("50"));
document.write("<BR>" + parseInt("50.12345"));
document.write("<BR>" + parseInt("32.00000000"));
document.write("<BR>" + parseInt("71.348  92.218  95.405"));
document.write("<BR>" + parseInt("         37 varkens"));
document.write("<BR>" + parseInt("Cursussen van het jaar 2005"));

var jaar = 120;
if ( parseInt(jaar / 4) == (jaar / 4 ) )
{
	document.write("<BR>jaar is deelbaar door 4");
}

parseFloat

Deze Javascript-functie zoekt het eerste (komma)getal in een tekenreeks. Begint de tekenreeks niet met een getal dan retourneert parseInt NaN: Not a Number.
document.write("<BR>" + parseFloat("50"));
document.write("<BR>" + parseFloat("50.12345"));
document.write("<BR>" + parseFloat("32.00000000"));
document.write("<BR>" + parseFloat("71.348  92.218  95.405"));
document.write("<BR>" + parseFloat("         37 varkens"));
document.write("<BR>" + parseFloat("Cursussen van het jaar 2005"));

Compacte if: ... ? ... : ...

Een voorwaardelijke structuur kan met de operatoren ? en : op een compacte manier geschreven worden.

var a = 10;
var b = 12;
document.write( a>b ? "a groter dan b" : "a niet groter dan b");

Wiskundige operatoren

Het spreekt voor zich dat je met Javascript ook wiskundige bewerkingen kan uitvoeren. Een aantal van deze operatoren hebben we in de voorgaande voorbeelden reeds intuïtief gebruikt.
Betekenis Operator Voorbeeld
Optellen + som = a + b;
Aftrekken - verschil = a - b;
Tegengestelde - tegengestelde = -b;
Vermenigvuldigen * product = a * b;
Delen / quotiënt = a / b;
Modulo % rest = a % b;
Verhogen met 1 ++ a++ of ++a (a = a + 1)
Verlagen met 1 -- a-- of --a (a = a - 1)

Opgepast met de ++ en -- operatoren, er is een subtiel, doch belangrijk verschil wanneer deze operatoren als prefix of suffix worden gebruikt:

var aantal=1;
document.write(aantal++);
document.write('<br>');
document.write(aantal);

document.write('<hr>');

aantal=1;
document.write(++aantal);
document.write('<br>');
document.write(aantal);

In de eerste toepassing wordt de variabele aantal ingesteld op 1. De waarde van aantal++ wordt op het scherm gezet. Aantal wordt hier met 1 opgehoogd pas nadat de instructie werd uitgevoerd!

In de tweede toepassing wordt ++ als prefix gebruikt en wordt de waarde van aantal reeds opgehoogd vooraleer die op het document wordt geplaatst.

Booleaanse operatoren

In de Booleaanse logica kennen we twee waarden: waar en onwaar. In Javascript worden hiervoor de waarden true en false gebruikt.

We hebben deze Booleaanse waarden reeds gebruikt in voorwaardelijke structuren en lussen.

Met Booleaanse operatoren kan je meerdere voorwaarden ineens testen.

And: &&

Met de Booleaanse operator && kan je meerdere voorwaarden testen geschakeld met een logische 'en': alle voorwaarden moeten waar zijn vooraleer de totale expressie waar is.
var getal1 = 8;
var getal2 = 24;

if ( (getal1 < 10) && ( getal2 < 40) ) 
{
document.write("Beide voorwaarden zijn vervuld");
}

De binnenste koppels haken zijn hier optioneel, maar verhogen de leesbaarheid. De voorwaarden leveren telkens true waardoor de 'en'-geschakelde expressie true levert en de statements binnen de if-structuur worden uitgevoerd.

Als voorwaarde kan ook een getal dienen: alle numerieke waarde behalve 0 hebben een logische waarde true, 0 heeft de waarde false.

Or: ¦¦

Met de Booleaanse operator && kan je meerdere voorwaarden testen geschakeld met een logische 'en': alle voorwaarden moeten waar zijn vooraleer de totale expressie waar is.
var getal1 = 12;
var getal2 = 24;

if ( (getal1 < 10) ¦¦ ( getal2 < 40) ) 
{
document.write("Minstens 1 voorwaarde is vervuld");
}

De binnenste koppels haken zijn hier optioneel, maar verhogen de leesbaarheid. Wanneer 1 van de voorwaarden een logische true oplevert wordt de totale expressie true bij een 'of'-schakeling.

Als voorwaarde kan ook een getal dienen: alle numerieke waarde behalve 0 hebben een logische waarde true, 0 heeft de waarde false.

Bitniveau operatoren

Je kan in Javascript ook met de bitwaarde van een variabele werken. Deze bitwaarde van een variabele is de waarde van de variabele zoals die is opgeslagen in het interne geheugen van je computer : in het binaire talstelsel.

Bitoperator en: &

document.write( 14 & 7 );
Levert: 6.

Werkwijze:

14 binair: 1 1 1 0
7 binair 0 1 1 1
logische 'en' berekening - decimaal resultaat: 6 0 1 1 0

Bitoperator of: ¦

document.write( 14 ¦ 7 );
Levert: 15.

Werkwijze:

14 binair: 1 1 1 0
7 binair 0 1 1 1
logische 'of' berekening - decimaal resultaat: 15 1 1 1 1

Bitoperator exor: ^

document.write( 14 ^ 7 );
Levert: 9.

Werkwijze:

14 binair: 1 1 1 0
7 binair 0 1 1 1
logische 'exor' berekening - decimaal resultaat: 9 1 0 0 1

De exor of exclusieve or levert true als een van de deelwaarden true is, doch false als alle voorwaarden true zijn.

Concrete toepassingen:

<h3>Initialiseren van een variabele</h3>
<script type="text/javascript">
<!--
var a = 25;

document.write("<BR>" +a );
document.write("<BR>" +(a ^ a) );
// -->
</script>

<h3>Twee waarden omwisselen zonder hulpvariabele</h3>
<script type="text/javascript">
<!--
var a = 25;
var b = 10;

document.write("<BR>a = " +a );
document.write("<BR>b = " +b );

a = a ^ b;
b = a ^ b;
a = a ^ b;

document.write("<hr><BR>a = " +a );
document.write("<BR>b = " +b );

Meer tutorials:
leer ook: html | xhtml | css | asp | asp.net | c# | ado.net | linq | ajax | java | javascript
Valid HTML 4.01! Valid CSS! © - Cursusweb