# JavaScript 2 # Lesplan In de JavaScript lessen zullen we gebruik maken van de stof die is opgedaan in de vorige JavaScript lessen. Deze kennis zullen we vergroten door een stuk van de basis te herhalen, uit te breiden en nieuwe kennis op te doen. De eerste week van week 1 begint met een instaptoets **\[1\]**. Deze toets telt niet mee in je eindcijfer en dient als hulpmiddel voor de docent. Na de instaptoets zullen we een beginnen met een stukje JavaScript kennis die is opgedaan in de vorige lessen en verder werken aan het leren van JavaScript skills!
Het kan zijn dat bepaalde begrippen worden uitgelegd aan het einde van de pagina. Deze lijst bevat begrippen die je kunnen helpen bij het begrijpen van de lesstof. Zie je toch een onbekend begrip? Geef het aan bij de docent!
**LET OP!!** Neem de LEGENDA door om de pagina's optimaal te gebruiken.
#### Setup Operating system: Windows is de default operating system (OS) die in de lessen gebruikt zal worden. Andere operating systems zijn toegestaan, maar het kan zijn dat de docent niet altijd kan helpen met het troubleshooten van OS gerelateerde problemen. Webbrowser: Verder maken we gebruik van de Google Chrome webbrowser: [https://www.google.com/chrome/index.html](https://www.google.com/chrome/index.html) . Editor: **Let op!** Als student kun je met je schoolmail een gratis licentie aanvragen voor WebStorm. Navigeer naar [https://www.jetbrains.com/shop/eform/students](https://www.jetbrains.com/shop/eform/students) en vraag een gratis studenten licentie aan! De Integrated Development Environment (IDE) **\[B1\]** die we gaan gebruiken is WebStorm. Deze kan via de volgende link gedownload worden: [https://www.jetbrains.com/webstorm/](https://www.jetbrains.com/webstorm/) . Je studentenlicentie kan gebruikt worden om WebStorm te activeren! #### Les(opdrachten) en huiswerk Vanaf week twee begint elke les met het bespreken van het huiswerk. De leerlingen krijgen de ruimte om aan te geven waar ze tegenaan zijn gelopen en wat ze lastig vonden. Hierbij wordt gekeken naar de stappen die de leerling zelf heeft genomen om de problemen op te lossen. Na de huiswerkbespreking wordt een nieuw stukje theorie behandeld en krijgen de leerlingen de gelegenheid om aan de les-opdrachten - **\[2\]** en huiswerk te werken. Een overzicht van de lesstof is te vinden in de studiewijzer hieronder. Voor meer informatie kun je de individuele lessen raadplegen. ### StudiewijzerWeek | Verwachting | Beschrijving |
1 | Van de leerling wordt verwacht dat hij/zij bekend is met de stof van JavaScript I. | - Instaptoets - Herhaling JavaScript I: - Console - Variabelen - Operatoren en syntax: - Vergelijkingsoperatoren - Rekenkundige operatoren - Logische operatoren - Datatypen: - Integeer, number, float - String - Boolean - Build-in function: typeof() - Commentaar: - Single line comments - Multi-line comments |
2 | De leerling kan een if-statement schrijven en kan deze uitbereiden met een else if en else. De leerling weet wat functies en return values zijn, hij/zij kent de begrippen parameter en arguement en weet hoe een functie met parameters geimplementeerd wordt. De leerling kent JavaScript build-in functions en kan hier mee werken. | - Behandelen huiswerk week 1 - If-statement: - If-statement - If-else-if statement - Functions: - Function & functienamen en return values - Functions with parameters and arguments - JavaScript build-in functions: - concat() - prompt() - date() |
3 | De leerling kent het begrip variabel en de verschillende soorten variabelen. De leerling is begrip met het begrip scope en kan deze kennis toepassen bij het aanmaken van variabelen en het wijzigen ervan. De leerling kent de verschillende loops, is bekend met de termen break en continue en kan deze toepassen. De leerling kent het begrip switch en kan deze implementeren. De leerling is bekend met array functions, kent het verschil tussen JS functions en arrow functions. De leerling kan arrow functions met params implementeren. | - Behandelen huiswerk week 2 - Variabelen & datatypen: - (link) undefined - var, const, let (default undefined) - Function: - Scope - Loops: - for - while - do while - break & continue - Switch - Arrow functions - Arrow functions with params en arguments |
4 | Eerste JavaScript II toets. De leerling is bekend met het begrip datastructuur en kan werken met arrays. Hiertoe behoren het toevoegen, opvragen van elementen. | - Behandelen huiswerk week 3 - Eerste toets over stof van de voorgaande weken. - Toets bespreken - Datastructuren: - Arrays: - Element van array - slice - shift - pop |
5 | De leerling is bekend met het begrip dictionaries en kan werken met key-value pairs. | - Bespreken huiswerk week 4 - Datatructuren: - Dictionaries |
6 | De leerling is bekend met het begrip class, begrijpt waar een constructor voor wordt gebruikt. Hierbij komt het begrip scope terug. | - Bespreken huiswerk week 5 - Classes - Constructor - Scope (global variables) |
7 | De voorgaande weken worden samengevat als voorbereiding op de toets. De leerling is bekend met de basis van JavaScript en kan zonder internet scripten. | - Bepreken huiswerk week 6 - Samenvatten stof JavaScript II |
8 | Eindtoets period 3. | - Bespreken huiswerk week 7 - Eindtoets JavaScript II |
De console kun je openen door te klikken op de drie puntjes naast de adresbalk, deze opent een lijst van mogelijkheden. Click op "Meer hulpprogramma's" -> "Hulpprogramma's voor ontwikkelaars", merk op dat de console - afhankelijk van je instellingen - aan de rechterkant van je browser verschijnt. De console kan ook geopend worden met de keyboard shortcut: `CTRL + SHIFT + I` of `fn + F12`.
### Variabelen Een variabele verwijst naar een plekje in het computergeheugen. Met behulp van de variabele kun je van een bepaalde waarde uit het geheugen tonen/gebruiken en - als het nodig is - veranderen. Om verwarring te voorkomen, is het belangrijk dat de variabele naam uniek is. Dit betekend dat de variabelenaam niet mag bestaan. #### Waar moet een variabele naam aan voldoen? 1. Het belangrijkste is dat de naam van een variabele uniek moet zijn. 2. De naam van de variabele moet beginnen met een underscore(\_), kleine- of hoofdletter. 3. Het eerstvolgende woord in de naam van de variabele mag beginnen met een letter, \_ of cijfer. Variabele namen zijn case sensitive **\[B1\]**, dit betekend dat er onderscheid wordt gemaakt tussen X en x. #### Hoe kan ik een variabele aanmaken en gebruiken? Het is mogelijk om een variabele eerst aan te maken en dan een waarde toe te kennen. Bijvoorbeeld: ```JavaScript var nummer; nummer = 42; ``` Als je weet welke (begin)waarde een variabele heeft, kun je deze gelijk toekennen aan een variabele. Bijvoorbeeld: ```JavaScript var nummer = 42; ``` ### Code JavaScript code kun je schrijven tussen een script tag, nog netter zou zijn om het in een external JavaScript file te schrijven. Beide manieren worden hieronder gedemonstreerd: #### <script> De <script> tag wordt gebruikt om een client-side script (JavaScript) te definiëren en kan een script bevatten, of verwijzen naar een script. Het volgende voorbeeld laat een HTML skeleton zien, met een script tag die JavaScript bevat: ```HTMLJe kunt JavaScript dus in je HTML script opnemen, of in een apart JavaScript bestand beschrijven. Afhankelijk van de manier zou je de <script>-tag moeten veranderen. Let hierbij op het volgende verschil:
`
**Operator** | **Beschrijving** |
== | Gelijk aan |
!= | Niet gelijk aan |
< | Kleiner dan |
<= | Kleiner dan of gelijk aan |
> | Groter dan |
>= | Groter dan of gelijk aan |
**Operator** | **Beschrijving** | **Syntax** |
+ | Plus: telt twee waarden bij elkaar op. | 4 + 2 |
- | Min: trekt twee waarden van elkaar af. | 4 - 2 |
\* | Vermenigvuldig: telt twee waarden herhaaldelijk bij elkaar op. | 4 \* 2 |
/ | Delen: trekt twee waarden herhaaldelijk van elkaar af. | 4 / 2 |
% | Modulo: berekend de restwaarde van een deelsom. | 4 % 2 |
**Lesopdracht 1:** Hieronder staan enkele opgaven. Geef voor iedere regel aan wat het resultaat is en leg in je eigen woorden uit waarom dit zo is. 1) 5 < 3 != 4 > 8 2) 18 % 4 3) 2 + 10 \* 4
#### Logische operatoren Logische operatoren worden gebruikt met true/false-waarden en geven - afhankelijk van de gebruikte operator - een true of false waarde terug. Tabel 3 toont verschillende logische operatoren die je kunt gebruiken.**Operator** | **Beschrijving** | **Syntax** |
&& | Logische en | true && false |
|| | Logische of | true || false |
! | Logische niet | !false |
**Lesopdracht 2:** Hieronder staan enkele opgaven. Geef voor iedere regel aan wat het resultaat is (true/false) en leg in je eigen woorden uit waarom dit zo is. 4) true && true 5) true && false 6) true || false 7) !true
### Datatypes Datatypes **\[B3\]** worden ook wel gegevenstypes genoemd en zijn een belangrijk onderdeel van programmeren. Afhankelijk van een datatype kun je operators bijvoorbeeld wel/niet gebruiken. Tabel 3 toont een overzicht met verschillende datatypes:**Datatype** | **Syntax** | **Variabelen van bepaalde datatypen** |
Strings | "" | var str = ""; |
Numbers | getal (bijv. 1) | var nummer = 24; |
Boolean | true/false | var booleanWaarde = true; |
**Lesopdracht 3:** Stel dat we een variabele x hebben, die de som is van een string en nummer, bijvoorbeeld: 8) `var x = "Fifa " + 20` Voer het bovenstaande stukje code uit in de console en gebruik de functie typeof() om de datatype van x te achterhalen. Leg uit welk datatype x heeft.
### Comments Comments kunnen gezien worden als aantekeningen en kunnen gebruikt worden om uit te leggen waarom code op een bepaalde manier wordt geschreven, of waarom een check belangrijk is. Een andere situatie waarin comments gebruikt kunnen worden is om collega's te waarschuwen om een bepaald bestand niet handmatig te veranderen. JavaScript biedt de mogelijkheid om comments op een regel te schrijven (single line comments), of verdeeld over meedere regels (multi-line comments). De volgende code snippet demonstreert beide opties: ```JavaScript // Dit is een single line comment // Wanneer ik een dubbele forward-slash (//) gebruik, moet ik dit steeds opnieuw typen om een nieuwe regel als comment toe te voegen. /* Dit is een multi line comment. Ik kan hier zoveel text schrijven als ik wil, zonder dat ik extra tekkens moet toevoegen. */ ``` Lesopdrachten en huiswerkDe deadline voor de les - en huiswerk opdrachten kun je vinden in Microsoft Teams. De uitwerkingen kan je als Word - of text document inleveren in Microsoft Teams. Het huiswerk voor deze week kun je vinden op Microsoft Teams; Team "Databases - ${classcode}". Als je bijvoorbeeld in klas OITAOO9A zit, kun je je huiswerk vinden in Team "JavaScript- OITAOO9A".
### Begrippen **\[B1\]** Case sensitive = Hoofdletter gevoeling, met andere woorden, x en X zijn niet hetzelfde. **\[B2\]** Operators = Een andere benaming voor be(werker). Een voorbeeld is bijvoorbeeld een rekenkundige operator +. Deze wordt gebruikt om op te tellen. **\[B3\]** Datatype = Datatype, ook wel een gegevenstype genoemd. Voorbeelden zijn integers (getallen), string (text).