my authoring app
Home

my authoring app

JS - Variabelen

JavaScript is een dynamisch getypeerde taal die als onderdeel van een webapplicatie gehost wordt in een browser en dus door de browser geïnterpreteerd en uitgevoerd wordt.

Dynamisch getypeerd

Statisch getypeerd houdt in dat elke variabele een vast type is. Het type van een variabele kan tijdens de uitvoering van het programma niet veranderen. Bij het declareren van een variabele wordt het type ervan vastgelegd en dat type blijft gedurende de levensduur van het programma hetzelfde.

Dynamisch getypeerd wil zeggen dat elke waarde een type heeft. Het type van een variabele iwordt afgeleid uit de waarde die er aan wordt toegekend. De waarde van een variabele kan tijdens z’n levensduur veranderen en dus ook het gegevenstype ervan. Bij een dynamisch getypeerde taal is het dus niet nodig bij declaratie van een variabele het gegevenstype ervan mee te geven.

Een statisch getypeerde taal heeft het voordeel dat veel fouten al gemeld kunnen worden tijdens het compileren. Een dynamisch getypeerde taal heeft het voordeel dat casten (expliciet aangeven dat een waarde van type Object behandeld moet worden alsof het van het type String is) niet nodig is. Hiermee stellen we robuustheid tegenover flexibiliteit en dat is een vaak voorkomend discussiepunt!

Variabelen

Een variabele heeft:

Naam

Bereik

Als een variabele initialiseert zonder het keyword var te gebruiken is de scope van die variabele globaal, ook al declareer je die in een functie.

Typ in de url van je browser about:blank in. Dit opent een lege pagina. Open de Developer Console met F12 en klik op Console. In Edge krijg je dit:

Edge - Developer Console - Lege pagina
Edge - Developer Console - Lege pagina

Typ de volgende code in de console:

naam1 = 'Meryame Kitir';
function hello() {
    // de variable naam is hier bekend
    // alhoewel die buiten de functie is
    // gedeclareerd
    console.log(naam1);
    naam2 = 'François Hollande';
    var naam3 = 'Jean-Jacques Rousseau';
}

hello();
// naam2 is hier gekend alhoewel de variabele
// binnen de functie is gedeclareerd
console.log(naam2);
// naam3 is hier niet meer gekend omdat die
// variable binnen de functie hello is gedeclareerd
// met het keyword var
console.log(naam3);

Als de code uitvoert zie je dat de variabele naam3 globaal (op het hoogste niveau) niet gekend is:

Edge Developer Console - bereik variabelen
Edge Developer Console - bereik variabelen

Variabelen gebruiken

var

let

Vanaf ECMAScript 6 kan je ook let gebruiken om een variable te declareren. let werd ingevoerd om in JS ook een blokbereik van variabelen te hebben. Dat is een nieuwe eigenschap van JS waarmee we geleidelijk aan zullen leren mee werken. Ik vermeld dat hier maar we zullen let niet onmiddellijk gebruiken.

Het let statement declareert een lokale variabele met block scope en initialiseert die eventueel met een waarde. Hoe je var en let gebruikt lees je in Kyle Simpson, For and against 'let', October 27, 2014. Ook voor de implicaties wanneer je closures gebruikt.

JI
2016-09-18 14:55:44