Basics Flashcards

1
Q

Hoe moet je javascript toevoegen aan een HTML pagina

A

Met de volgende regel:Voeg de volgende regel toe in de head van je html bestand:

(script src=”script/main.js” defer)(/script)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Wat is strict mode?
  2. Waarom is het goed om in strict mode te programmeren?
  3. Hoe kunnen we strict mode activeren?
A

Strict mode is een speciale javascript modus die we kunnen gebruiken zodat javascript op een strictere manier wordt uitgevoerd.

Dit zorgt ervoor dat we als programmeur betere en minder foutgevoelige code schrijven.

  1. Strict mode kan toegepast worden op volledige bestanden of op enkele codeblocks

Om een functie in strict mode uit te voeren plaats ‘use strict’; helemaal bovenaan in de body van de functie.

Om een bestand in strict mode uit te voeren plaats ‘use strict’; helemaal bovenaan het bestand

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wat is het verschil tussen variabele declaratie, initialisatie en definitie?

A

// definitie van een variabele
let a = 5;
// declaratie van meerdere variabelen
let b, c, d;
// initialisatie van de variabele b
b = 8;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wat zijn de naming rules en conventions voor variabelen?

A

Regels:
- Geen gereserveerde woorden
- Niet beginnen met een cijfer
- Geen speciale karakters behalve underscore of het dollarteken

Conventies:
- camelCase notatie
- Namen moeten betekenisvol zijn

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wat is het verschil tussen primitieve datatypen en reference datatypes?

A

Een belangrijk verschil tussen beiden is dat objecten referentietypes zijn en primitieven value types zijn. M.a.w. wanneer we een object meegeven aan een functie oproep, en de functie dit object aanpast, dan zal deze aanpassing ook blijvend zijn. Dit is omdat niet het object maar een referentie naar het object in het geheugen wordt meegegeven aan de functie.

Bij primitieven is dit niet het geval. Wanneer een primitieve wordt meegegeven aan een functie dan wordt zijn waarde gekopieerd en gebeuren alle aanpassing op dat kopie. We zeggen ook wel dat primitieven call by value types zijn en object call by reference types zijn.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Met welke operator kunnen we het datatype van een variabele opvragen?

A

Met de typeof operator:

console.log(typeof e);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Javascript is een dynamische getypeerde taal. Wat wilt dit zeggen?
  2. Wat is een statische getypeerde taal?
A
  1. Dit wilt zeggen dat het type van een variabele at runtime nog kan veranderen. Daarom is het niet noodzakelijk om het type van de variabele te specificeren wanneer we er een declareren. Het type van de variabele wordt door javascript automatisch gedetecteerd.
  2. Bij een statisch getypeerde taal kan het type at runtime niet meer veranderen. Hier is het wel altijd belangrijk om bij definitie het type van de variabele in kwestie aan te geven.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wat is het verschil tussen een statement en een expressie?

A

Een expressie is een stuk code dat een nieuwe waarde teruggeeft. De meest simpele expressies zijn singletons zoals bijvoorbeeld getallen. Operatoren geven ons de mogelijkheid om simpele expressies met elkaar te combineren.

Een statement is een regel code dat iets doet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wat zijn truthy en falsey values?

A

Falsey waarden zijn primitieve waarden die door de operator als false waarden worden beschouwd. Truthy waarden zijn primitieve waarden die als true worden beschouwd:
- falsey values: undefined, null, 0, ‘’, NaN
- Truthy values: alle niet falsey values

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Gegeven:

let x = 5;
Boolean(x);
console.log(x);

  1. Wat doet Boolean(x)?
  2. Welke waarde zal console.log(x) printen
A
  1. Gaat de true of false teruggeven. Als het argument een falsey value is dan zal false worden teruggegeven, anders wordt er true teruggeven.
  2. de waarde 5 zal uitgeprint worden. Boolean(x) is dus geen mutator.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wat is lazy evalution of short circuiting?

A

Is het de naam dat gegeven wordt aan operatoren die niet al hun operanden hoeven te evalueren alvorens ze een resultaat kunnen teruggeven.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wat doet de nullish coalescing operator (??) ?

A

Deze operator werkt net als de OR operator (||) met als verschil dat het de lege string(‘’) en 0 niet als falsey values beschouwt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wat is coercion? Geef een voobeeld?

A

coercion is wanneer het ene datatype automatisch wordt omgezet naar een andere datatype. Een voorbeeld hiervan is wanneer we een getal met een string combineren:

const age = 31;
const phrase = “I am “ + age + “ years old”;

Hier zal 31 omgezet worden in een string. Deze automatische conversie wordt geïnitieerd door de + operator. Alse deze operator een getal en een string als operanden heeft dan zal het dat getal omzetten naar een string zodat beide operanden kunnen samengevoegd worden in een string.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Gegeven is de volgende code:

let inputYear = ‘1991’;
Number(inputYear) + 18;

Van welk type is inputYear na uitvoer van de tweede regel code?

A

inputYear is nog steeds van het type string. De expressie Number(inputYear) + 18 zal echter resulteren in een waarde van het type Number.

Het is dus belangrijk om te weten dat Number het datatype van de originele variabele niet aanpast.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Wat stelt NaN voor?
  2. Geef een voorbeeld van wanneer we dergelijk output terugkrijgen
A
  1. NaN, dat staat voor Not a Number, is een waarde dat we terugkrijgen wanneer we een operatie hebben uitgevoerd dat oorspronkelijk een getal had moeten produceren maar waarbij het niet mogelijk is om dit getal te bekomen.
  2. Voorbeeld:

let firstName = ‘Jimmy’;
let n = Number(firstName); // geeft NaN terug
console.log(n); // zal NaN printen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wat is het verschil tussen een gewone if else statement en de ternary operator?

A

Het verschil is dat de gewone if else een statement is en de ternary operator een expressie is.

Dit is een belangrijk verschil om te weten omdat we op sommige plaatsen in de code enkel expressies kunnen gebruiken en geen statements. Een voorbeeld in bij de initialisatie van een variabele:

// rechts van = kan enkel een expressie staan
const output = x >= 0 ? “positive nr” : “negative nr”;

17
Q

Wanneer gebruik je best een while loop in plaats van een for loop,

A

Wanneer je niet juist weet hoeveel keren er geïtereerd moet worden, bijvoorbeeld:

while(dice !== 6){
// do some
}

18
Q

Wat is het verschil tussen een while en do-while loop?

A

Het verschil tussen een while en een do while loop is dat de body van een do while altijd minstens 1 keer zal uitgevoerd worden.

let i = 0;
do {
console.log(i);
i++;
} while (i < 10);

19
Q

Wat is het verschil tussen de for-in en for-of loop?

A

De for-in loop wordt gebruikt om door objecten te lopen, terwijl de for-of gebruikt wordt om door iterables (array, set, map, string) te lopen.

20
Q
  1. Wat is een scope?
  2. Wat is het verschil tussen een lokale en een globale scope?
A
  1. Een scope is het gebied waar een variabele (of functie) bruikbaar is.
  2. Indien we een variabele bovenaan een bestand definiëren, dan zeggen we dat de variabele een globale scope heeft en kan het overal in de file gebruikt kan worden.

Indien de variabele binnen een code block wordt gedefinieerd dan zeggen we dat de variabele een lokale scope heeft. In dit geval is de variabele enkel bruikbaar binnen dat block.

21
Q

Waarom is het afgeraden om globale variabelen te definiëren?

A

Het wordt afgeraden om globale variabelen te definiëren omwille van veiligheid en geheugengebruik.:

  • Veiligheid: Omdat een globale variabele overal in het programma toegankelijk is, kan zijn waarde makkelijk ‘al dan niet per ongeluk’ overschreven worden waardoor bugs kunnen ontstaan.
  • Geheugengebruik: globale variabele nemen constant geheugen in beslag terwijl lokale variabelen enkel geheugen in beslag nemen wanneer een code block wordt uitgevoerd.
22
Q

Wat zijn de verschillen tussen het definiëren van een variabelen met let en var?

A
  1. Variabelen die gedefinieerd zijn met var hebben een function scope terwijl variabelen gedefineerd met let en const een block scope hebben.
  2. Een tweede verschil doet zich voor bij de definitie van een globale variabele. Een globale variabele dat gedefinieerd is met var, zal automatisch toegevoegd worden aan het window object. Zaken toevoegen aan dit object is afgeraden omdat dit tot errors kan leiden. Variabelen gedefinieerd met let en const worden niet aan het window object toegevoegd.