cmda-bt / cmda-bt/fe-course-20-21

Week 1: Samenvatting hoofdstuk 4, 13 & 14

Open
#116 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
30
Forks
2
PR merge metrics
No merged PRs in 30d

Description

# Chapter 4: Datastructures: Objects and Arrays
## Arrays

Arrays zijn lijstjes om meerdere waardes in op te slaan.
_let lijstVanGetallen = [ 10, 20, 30, 40];_

Als je eerste waarde van de array wilt tonen moet je de index meegeven van 0, niet 1.
_console.log(lijstVanGetallen[0]);_

## Properties

Als de lengte van array wilt ophalen, maak je gebruik van de **length** property.
_console.log(lijstVanGetallen.length);_

Je kan deze waarde ook ophalen door deze tussen brackets en quotes in te vullen.
_lijstVanGetallen["length"];_

Bijna alle JavaScript waardes hebben properties. Uitzondering hierop zijn **null** en **undefined**. Als je deze waardes wilt ophalen, krijg je een error.

## Methods

Elke string heeft de **toUpperCase** en **toLowerCase** property. Bij de eerste krijg je een waarde terug in hoofdletters en de laatste in kleine letters.

_console.log(hond[0].toUpperCase);
console.log(hond[0].toLowerCase);_

De **push** method voegt waarden toe aan het einde van een array en de **pop** method verwijderd de laatste waarde in een array.

## Objects

Waarden van het type **object** zijn een verzameling van zelfgemaakte properties. Een manier om een object te maken, is door accolades als uitdrukking te gebruiken. Elke property wordt op de volgende regel gezet , voor leesbaarheid, en eindigt met een komma (behalve de laatste property).

_let klas = {
naam: "Tech4",
studenten: ["Jan", "Piet", "Klaas", "Willem"]
};
console.log(klas.naam);_

De **delete** operator verwijderd de aangegeven property uit een object.
delete klas.naam

Met de **in** operator wordt gezocht in het object of de aangegeven property aanwezig is.

## Array loops
Je kan met behulp van loops elke waarde tonen van een array of object.
_for (let i = 0; i < honden.length; i++) {
console.log(hond[i]);
}_

slice is een array methode, die start- en eind indexes gebruikt en een array terug geeft met alleen de elementen ertussen.
_console.log([0, 1, 2, 3, 4].slice(2, 4));
// [2, 3]_

## The Math object

**Math** is een verzameling van nummer gerelateerde functies, zoals **Math.max** en **Math.min**.

## JSON

JSON bestanden lijken op de structuur van JavaScipt objecten. Deze kunnen worden omgezet naar een JavaScript object met behulp van **JSON.parse** en **JSON.stringify**.

_let klas = {
naam: "Tech4",
studenten: ["Jan", "Piet", "Klaas", "Willem"]
};_

# Chapter 13: Javascript and the browser

Wanneer twee of meerdere computers met elkaar kunnen communiceren wordt dat een **netwerk** genoemd.
Het **internet** is een wereldwijd netwerk dat in de jaren 80 werd ontwikkeld.

Een netwerkprotocol is een communicatiestijl via een netwerk. Er zijn protocollen voor bijvoorbeeld het verzenden en ophalen van e-mails, en voor het delen van bestanden.

Het **Hypertext Transfer Protocol (HTTP)** is voor het ophalen van benoemde stukjes informatie, zoals webpagina's of afbeeldingen. HTTP behandelt het netwerk als een stroomachtig apparaat waarin je bits kunt plaatsen en ze in de juiste volgorde op de juiste bestemming kunt laten aankomen. Dit gaat lang niet altijd goed. De **Transmission Control Protocol (TCP)** helpt met dit probleem.

Een TCP-verbinding werkt als volgt: computer A moet wachten of luisteren voordat computer B ermee beginnen te "praten". Om te kunnen luisteren naar verschillende soorten communicatie tegelijkertijd op een enkele machine heeft elke luisteraar een nummer, de **port**, dat eraan is gekoppeld.

Als computer B kan worden bereikt en op die port luistert, is de verbinding tot stand gebracht. De luistercomputer (B) wordt de **server** genoemd en de verbindende computer (A) wordt de **client** genoemd.

Het **World Wide Web (WWW)** is een reeks protocollen en formats waarmee we websites in een browser kunnen bezoeken. Elk document op het web wordt genoemd door een **Uniform Resource Locator (URL)**.

Apparaten die met internet zijn verbonden krijgen een **IP-adres**, dat wordt gebruikt om berichten naar andere apparaten te sturen.

**Hypertext Markup Language (HTML)** is het document format dat wordt gebruikt voor webpagina's. HTML bestaat uit platte tekst en tags, die informatie geven over de structuur van het document. Met de tag voeg je JavaScript toe aan een HTML document.

JavaScript programma's worden door browsers ernstig beperkt: het kan niet naar de bestanden op jouw computer kijken of iets wijzigen dat niets te maken heeft met de webpagina zelf. Deze manier van isoleren van een programmeeromgeving wordt **sandboxing** genoemd.

# Chapter 14: The Document Object Model
## Document structure
Je kan een HTML document zien als een verzameling van boxes. Het Document Object Model (DOM) is de datastructuur die een HTML document weergeeft. **document** geeft ons toegang tot deze objecten.

## Trees
Een **tree** is een datastructuur met een takken structuur, heeft 1 duidelijk gedefinieerde **root** en heeft geen **cycles** (een node mag zichzelf niet bevatten). Bij de DOM is **document.documentElement** de root.

Bij de DOM zijn de nodes de elementen, die HTML-tags vertegenwoordigen. Deze bepalen de structuur van het document en kunnen onderliggende nodes hebben. Elke DOM-node heeft de property **nodeType**, die een code (nummer) bevat die het type node identificeert.

## Moving through the tree
Elke node heeft de property **parentNode** die verwijst naar de node waarvan het deel uitmaakt, indien aanwezig. Verder heeft elk element node een property **childNodes** die verwijst naar een array-achtig object dat zijn children bevat. Met de volgende properties kan je door de tree navigeren:
**firstChild**, **lastChild**, **nextSibling** en **previousSibling**.

## Finding elements
Alle element nodes hebben de **getElementsByTagName** method, die alle elementen met de gegeven tag name verzamelt die directe of indirecte children zijn van die node en ze terug geeft als een arrayachtig object.

## Query selectors
De **querySelectorAll** method, die zowel op het documentobject als op element nodes is gedefinieerd, neemt een selector string en geeft een **NodeList** terug met alle elementen waarmee deze overeenkomt. Het object dat wordt terug gegeven door de querySelectorAll method is niet live.

Contributor guide

No contributing guide indexed for this repository

Research direction

Review the submitted summaries for Chapters 4, 13, and 14, covering JavaScript data structures, browser networking, and the DOM. The issue names no file, test, or concrete change, so confirm the expected course deliverable before editing; done should mean the requested summary is complete and ready for use.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
content, documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.