{"id":32655,"date":"2025-05-13T23:33:18","date_gmt":"2025-05-14T02:33:18","guid":{"rendered":"https:\/\/mastertrend.info\/?p=32655"},"modified":"2026-04-28T14:50:55","modified_gmt":"2026-04-28T17:50:55","slug":"maak-je-eerste-webapp","status":"publish","type":"post","link":"https:\/\/mastertrend.info\/nl\/crea-tu-primera-app-web\/","title":{"rendered":"Maak je eerste webapp en leer programmeren zonder stress \ud83d\ude80\ud83d\udcbb"},"content":{"rendered":"<h2 class=\"table-content-link\">Maak je eerste webapp: notities + teller eenvoudig en snel \ud83d\udcdd\u26a1<\/h2>\n<p>Beginnen met programmeren kan overweldigend lijken, met zoveel programmeertalen, frameworks en methodologie\u00ebn om te overwegen. Soms lijkt het misschien makkelijker om alles aan een AI te delegeren. Maak je geen zorgen! Programmeren voor het web kan eenvoudig, leuk en bovendien helemaal gratis zijn! \ud83c\udf10\u2728<\/p>\n<h2 id=\"what-you-rsquo-ll-build\">Wat je gaat bouwen<\/h2>\n<p>Met deze tutorial maakt u een eenvoudige webapplicatie waarmee u tekstnotities kunt opslaan en tekens en woorden kunt tellen.<\/p>\n<p>De app bewaart gegevens, zodat de tekst wordt onthouden wanneer je de pagina opnieuw laadt of opent. Dit betekent dat je gemakkelijk tekst kunt opslaan die je later wilt raadplegen, zoals adressen, URL&#039;s, enzovoort. \ud83d\udcc4\ud83d\udd17<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><source media=\"(min-width: 768px)\" data-=\"\" \/><source media=\"(min-width: 481px)\" data-=\"\" \/><source media=\"(min-width: 0px)\" data-=\"\" \/><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/01\/Crea-Tu-Primera-Aplicacion-Web-Una-App-de-Notas-Sencilla.png\" alt=\"Een voorbeeld van een eenvoudige tekstgebaseerde webtoepassing die notities weergeeft, inclusief een agenda-item en een lijst met URL&#039;s.\" width=\"960\" height=\"569\" title=\"\"> <\/picture><\/figure>\n<p>Het telt ook tekens en woorden, wat een goede introductie is tot het manipuleren van strings (tekst). Natuurlijk is de app heel eenvoudig \u2013 dat is juist de bedoeling! Maar met deze tutorial leer je de basisprincipes van het ontwikkelen van een webapp, en dan ligt de wereld aan je voeten. \ud83e\uddaa\ud83d\udcbb<\/p>\n<h2 id=\"how-you-rsquo-ll-build-it\">Hoe ga je het bouwen?<\/h2>\n<p>Hoewel webapplicaties zeer divers zijn, maken ze doorgaans gebruik van drie hoofdtechnologie\u00ebn: HTML, CSS en JavaScript. Het is essentieel dat je hun rol begrijpt voordat je begint.<\/p>\n<ul>\n<li>Met HTML: Hypertext Markup Language kun je de structuur van je content defini\u00ebren. Je kunt er tekst mee markeren op basis van de betekenis, bijvoorbeeld om aan te geven of het een alinea, een kop of een item in een lijst betreft.<\/li>\n<li>CSS: Met Cascading Style Sheets kun je je content stylen. Met deze taal kun je een alinea groen kleuren, alle links vetgedrukt maken of een zijbalk naast je hoofdartikel plaatsen. \ud83c\udfa8<\/li>\n<li>JavaScript: Met deze programmeertaal kun je functionaliteit aan je website toevoegen. Je kunt knoppen delen van je document laten weergeven of verbergen wanneer erop wordt geklikt, of een complete tekstverwerker of videogame implementeren. \ud83c\udfae<\/li>\n<\/ul>\n<p>Hij <a href=\"https:\/\/web.dev\" target=\"_blank\" rel=\"noopener noreferrer\">website.dev<\/a> (escrito por miembros del equipo de Chrome) y MDN, la Red de Desarrolladores de Mozilla, son dos excelentes fuentes de informaci\u00f3n sobre tecnolog\u00edas web fundamentales.<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><source media=\"(min-width: 768px)\" data-=\"\" \/><source media=\"(min-width: 481px)\" data-=\"\" \/><source media=\"(min-width: 0px)\" data-=\"\" \/><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/01\/1736598858_798_Crea-Tu-Primera-Aplicacion-Web-Una-App-de-Notas-Sencilla.png\" alt=\"De homepage van de web.dev-site met leermiddelen voor HTML, CSS en JavaScript.\" width=\"1388\" height=\"734\" title=\"\"> <\/picture><\/figure>\n<h2 id=\"the-app-structure\">De structuur van de app<\/h2>\n<p>De app die je bouwt, bestaat uit drie eenvoudige bestanden: index.html, styles.css en script.js. \ud83d\uddc2\ufe0f<\/p>\n<p>Er zijn geen speciale vereisten om de app te gebruiken; je hebt alleen een webbrowser nodig. Er is geen backendfunctionaliteit, dus je hebt geen scripttaal zoals PHP of een lokale webserver nodig. Zodra je klaar bent, kun je de app openen. <a title=\"Een lokale Linux-webserver instellen op Windows 11\" href=\"https:\/\/mastertrend.info\/nl\/lokale-linux-webserver\/\" target=\"_blank\" rel=\"noopener\" data-wpil-monitor-id=\"5749\">index.html-bestand rechtstreeks in uw browser<\/a> en alles komt goed. \ud83d\ude0a<\/p>\n<p>Het is belangrijk om te vermelden dat deze app je tekst opslaat zonder deze naar een specifiek bestand op schijf te schrijven, omdat JavaScript geen toegang heeft tot het bestandssysteem. Het maakt gebruik van de Web Storage API, een krachtig alternatief voor cookies. \ud83c\udf6a\ud83d\udcbe<\/p>\n<h2 id=\"how-to-build-the-note-taker\">Hoe je de Note Taker bouwt<\/h2>\n<p>Maak de volgende drie bestanden in dezelfde directory en open vervolgens index.html in een webbrowser. U kunt de bestanden ook downloaden van <a href=\"https:\/\/github.com\/bobbykjack\/text\" target=\"_blank\" rel=\"noopener\">deze GitHub-repository<\/a>. \ud83d\udce5<\/p>\n<h3 id=\"building-the-structure-with-html\">De structuur bouwen met HTML<\/h3>\n<p>Het bestand index.html definieert de structuur van de content van je app in HTML. Het bevat verwijzingen naar de andere twee bestanden, zodat een browser deze kan combineren tot het eindproduct.<\/p>\n<p>Zoals bij alle HTML-documenten bestaat de hoofdstructuur uit een head-sectie met metagegevens en een body-sectie met de daadwerkelijke inhoud die op de pagina zal verschijnen:<\/p>\n<pre><code class=\"hljs html\"><span class=\"hljs-meta\">html<\/span>&gt;\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">hoofd<\/span>&gt;<\/span>\r\n    ...\r\n<span class=\"hljs-tag\"><span class=\"hljs-name\">hoofd<\/span>&gt;<\/span><\/code><\/pre>\n<p><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">lichaam<\/span>&gt;<\/span><br \/>\n&#8230;<br \/>\n<span class=\"hljs-tag\"><span class=\"hljs-name\">lichaam<\/span>&gt;<\/span><br \/>\n<span class=\"hljs-tag\"><span class=\"hljs-name\">html<\/span>&gt;<\/span><\/p>\n<pre><code class=\"hljs html\"><\/code><\/pre>\n<pre><code class=\"hljs html\"><\/code><\/pre>\n<p>De metagegevens in de head zijn heel beknopt, met alleen de paginatitel (die in de titelbalk van uw browser verschijnt) en een verwijzing naar het styles.css-bestand:<\/p>\n<pre><code class=\"hljs html\">    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">titel<\/span>&gt;<\/span>Tekst<span class=\"hljs-tag\"><span class=\"hljs-name\">titel<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span> <span class=\"hljs-attr\">rel<\/span>=<span class=\"hljs-string\">&quot;stijlblad&quot;<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">&quot;stijlen.css&quot;<\/span> \/&gt;<\/span>\r\n<\/code><\/pre>\n<p>Het lichaam is ingewikkelder, maar er zijn slechts een paar belangrijke onderdelen:<\/p>\n<pre><code class=\"hljs html\">    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">&quot;balie&quot;<\/span>&gt;<\/span>\r\n        woorden: <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">span<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">&quot;woorden&quot;<\/span>&gt;<\/span>0<span class=\"hljs-tag\"><span class=\"hljs-name\">span<\/span>&gt;<\/span>\r\n        \/ tekens: <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">span<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">&quot;tekens&quot;<\/span>&gt;<\/span>0<span class=\"hljs-tag\"><span class=\"hljs-name\">span<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\"><span class=\"hljs-name\">div<\/span>&gt;<\/span><\/code><\/pre>\n<p><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">tekstvak<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">&quot;tekst&quot;<\/span> <span class=\"hljs-attr\">autofocus<\/span>=<span class=\"hljs-string\">\u00ab1\u00bb<\/span>&gt;<\/span><span class=\"hljs-tag\"><span class=\"hljs-name\">tekstvak<\/span>&gt;<\/span><\/p>\n<pre><code class=\"hljs html\"><\/code><\/pre>\n<p><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">script<\/span> <span class=\"hljs-attr\">bron<\/span>=<span class=\"hljs-string\">\u00abscript.js\u00bb<\/span>&gt;<\/span><span class=\"hljs-tag\"><span class=\"hljs-name\">script<\/span>&gt;<\/span><\/p>\n<pre><code class=\"hljs html\"><\/code><\/pre>\n<pre><code class=\"hljs html\"><\/code><\/pre>\n<p>Het div-element bevat het aantal woorden en tekens van de app. Het bevindt zich bovenaan de webapp en wordt bijgewerkt wanneer de tekst verandert.<\/p>\n<p>Let op de id-attributen, die essentieel zijn voor de werking. De waarde van een id moet uniek zijn, zodat de app deze kan gebruiken om een specifiek element te identificeren. Dit kan ons helpen bij het stylen van deze elementen en bij het toevoegen van functionaliteit.<\/p>\n<p>Het tekstvak is een ingebouwd formulierelement waarmee u eenvoudige tekst in een browser kunt typen. Dankzij het autofocus-attribuut is het klaar om te typen zodra de pagina geladen is. Ten slotte verwijst de pagina naar het JavaScript-bestand script.js.<\/p>\n<p>Je kunt nu het bestand index.html in een browser openen. Het doet nu niets en het ziet er ook niet goed uit, maar het is nuttig om je app in elke fase te testen om er zeker van te zijn dat de basisfuncties werken zoals je verwacht.<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><source media=\"(min-width: 768px)\" data-=\"\" \/><source media=\"(min-width: 481px)\" data-=\"\" \/><source media=\"(min-width: 0px)\" data-=\"\" \/><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/01\/1736598858_678_Crea-Tu-Primera-Aplicacion-Web-Una-App-de-Notas-Sencilla.png\" alt=\"Een weergave van de web-app voor het maken van notities met standaardbrowserstijlen, waarbij alles gegroepeerd is in de linkerbovenhoek.\" width=\"960\" height=\"569\" title=\"\"> <\/picture><\/figure>\n<h3 id=\"making-things-look-good-with-css\">Ze er goed uit laten zien met CSS<\/h3>\n<p>Met CSS kun je delen van je webpagina stylen door die delen te targeten en waarden op te geven voor eigenschappen zoals lettergrootte en achtergrondkleur. Deze voorbeeldapp heeft geen heel verfijnd ontwerp nodig omdat de interface zo basic is. We kunnen de ruwe kantjes echter wel gladstrijken met een vleugje stijl. \ud83c\udfa8\u2728<\/p>\n<p>Style eerst het lichaam om het algehele ontwerp te defini\u00ebren:<\/p>\n<pre><code class=\"hljs css\"><span class=\"hljs-selector-tag\">lichaam<\/span> {\r\n    <span class=\"hljs-selector-tag\">marge<\/span>: 0;\r\n    <span class=\"hljs-selector-tag\">vulling<\/span>: 0;\r\n    <span class=\"hljs-selector-tag\">weergave<\/span>: <span class=\"hljs-selector-tag\">rooster<\/span>;\r\n    <span class=\"hljs-selector-tag\">min-hoogte<\/span>: 100<span class=\"hljs-selector-tag\">vh<\/span>;\r\n    <span class=\"hljs-selector-tag\">raster-sjabloon-rijen<\/span>: <span class=\"hljs-selector-tag\">min-inhoud<\/span> 1<span class=\"hljs-selector-tag\">vr<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>Este CSS utiliza la disposici\u00f3n en cuadr\u00edcula para posicionar los conteos de palabras y caracteres en una fila estrecha sobre el textarea. La propiedad grid-template-rows especifica que la fila del conteo debe ser lo m\u00e1s corta posible (min-content) y el textarea debe llenar el espacio restante (1fr).<\/p>\n<p>De tellerrij heeft een basisopmaak om hem te onderscheiden van de rest van de tekst, vooral door de achtergrond:<\/p>\n<pre><code class=\"hljs css\"><span class=\"hljs-selector-id\">#-teller<\/span> {\r\n    <span class=\"hljs-selector-tag\">lettertypefamilie<\/span>: <span class=\"hljs-selector-tag\">schreefloos<\/span>;\r\n    <span class=\"hljs-selector-tag\">achtergrondkleur<\/span>: <span class=\"hljs-selector-id\">#f7f7f7<\/span>;\r\n    <span class=\"hljs-selector-tag\">tekst-uitlijning<\/span>: <span class=\"hljs-selector-tag\">centrum<\/span>;\r\n    <span class=\"hljs-selector-tag\">breedte<\/span>: 100%;\r\n    <span class=\"hljs-selector-tag\">vulling<\/span>: 0<span class=\"hljs-selector-class\">.5em<\/span> 0;\r\n}\r\n<\/code><\/pre>\n<p>Ten slotte wordt het tekstgebied zo vormgegeven dat de tekst leesbaar is en voldoende ruimte biedt. De lijn die de aantallen van de tekst scheidt, is feitelijk de bovenrand van dit tekstgebied.<\/p>\n<pre><code class=\"hljs css\"><span class=\"hljs-selector-tag\">tekstvak<\/span> {\r\n    <span class=\"hljs-selector-tag\">breedte<\/span>: 100%;\r\n    <span class=\"hljs-selector-tag\">hoogte<\/span>: 100%;\r\n    <span class=\"hljs-selector-tag\">lettergrootte<\/span>: 16<span class=\"hljs-selector-tag\">pt<\/span>;\r\n    <span class=\"hljs-selector-tag\">vulling<\/span>: 1<span class=\"hljs-selector-tag\">in<\/span>;\r\n    <span class=\"hljs-selector-tag\">doosformaat<\/span>: <span class=\"hljs-selector-tag\">grensvak<\/span>;\r\n    <span class=\"hljs-selector-tag\">overzicht<\/span>: 0;\r\n    <span class=\"hljs-selector-tag\">grens<\/span>: <span class=\"hljs-selector-tag\">geen<\/span>;\r\n    <span class=\"hljs-selector-tag\">grens-boven<\/span>: 1<span class=\"hljs-selector-tag\">px<\/span> <span class=\"hljs-selector-tag\">stevig<\/span> <span class=\"hljs-selector-id\">#999<\/span>;\r\n}<\/code><\/pre>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><source media=\"(min-width: 768px)\" data-=\"\" \/><source media=\"(min-width: 481px)\" data-=\"\" \/><source media=\"(min-width: 0px)\" data-=\"\" \/><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/01\/1736598859_152_Crea-Tu-Primera-Aplicacion-Web-Una-App-de-Notas-Sencilla.png\" alt=\"De notitie-app met aangepaste stijlen geeft de telbalk bovenaan weer met daaronder een tekstvak op volledige grootte.\" width=\"960\" height=\"569\" title=\"\"> <\/picture><\/figure>\n<h3 id=\"adding-functionality-with-javascript\">Functionaliteit toevoegen met JavaScript<\/h3>\n<p>Nu de structuur en stijl op orde zijn, bent u klaar om functionaliteit toe te voegen: de code die ervoor zorgt dat deze eenvoudige app daadwerkelijk iets doet. \ud83d\udee0\ufe0f<\/p>\n<p>Voordat je zelfs de eenvoudigste code begint te schrijven, is het een goed idee om te begrijpen wat je ermee wilt doen. In dit geval zijn er slechts een paar algemene vereisten:<\/p>\n<ul>\n<li>Sla de ingevoerde tekst op en laad deze indien nodig opnieuw.<\/li>\n<li>Werk het aantal tekens en woorden bij om realtime statistieken te krijgen. \ud83d\udcca<\/li>\n<\/ul>\n<p>Beide vereisten vereisen het bijwerken van elementen in het document. Het script begint daarom met het verkrijgen van verwijzingen naar deze knooppunten met behulp van de getElementById-methode:<\/p>\n<pre><code class=\"hljs js\"><span class=\"hljs-keyword\">constant<\/span> woorden = <span class=\"hljs-built_in\">document<\/span>.getElementById(<span class=\"hljs-string\">&quot;woorden&quot;<\/span>);\r\n<span class=\"hljs-keyword\">constant<\/span> tekens = <span class=\"hljs-built_in\">document<\/span>.getElementById(<span class=\"hljs-string\">&quot;tekens&quot;<\/span>);\r\n<span class=\"hljs-keyword\">constant<\/span> tekstvak = <span class=\"hljs-built_in\">document<\/span>.getElementById(<span class=\"hljs-string\">&quot;tekst&quot;<\/span>);\r\n<\/code><\/pre>\n<p>Houd er rekening mee dat woorden, tekens en tekst de ID&#039;s zijn van hun respectieve elementen in het document. Deze worden in het HTML-bestand toegewezen met het id-kenmerk.<\/p>\n<p>Vervolgens moeten we ervoor zorgen dat de app reageert wanneer de tekst wordt gewijzigd:<\/p>\n<pre><code class=\"hljs js\">tekstgebied.addEventListener(<span class=\"hljs-string\">&quot;invoer&quot;<\/span>, <span class=\"hljs-function\"><span class=\"hljs-keyword\">functie<\/span>(<span class=\"hljs-params\">ev<\/span>) <\/span>{ lokaleOpslag.setItem(<span class=\"hljs-string\">&quot;tekst&quot;<\/span>, ev.doel.waarde); update_counts(ev.doel.waarde); });\r\n<\/code><\/pre>\n<p>Een event listener is een functie die JavaScript automatisch uitvoert wanneer een bepaalde gebeurtenis plaatsvindt. In dit geval koppelen we een listener aan het textarea-knooppunt, dat wordt uitgevoerd wanneer de &quot;input&quot;-gebeurtenis plaatsvindt. Dat wil zeggen, wanneer iemand interactie heeft met het textarea.<\/p>\n<p>Vervolgens gebruiken we de Web Storage API om de huidige inhoud van het tekstvak op te slaan, dat afkomstig is van ev.target.value. In deze structuur is ev een object dat de gebeurtenis vertegenwoordigt die de listener heeft geactiveerd, ev.target is het knooppunt dat de gebeurtenis heeft ontvangen en ev.target.value is de tekst van dat tekstvak.<\/p>\n<p>De setItem-methode accepteert twee parameters: een sleutelnaam om aan de gegevens te koppelen en de daadwerkelijke gegevens die moeten worden opgeslagen.<\/p>\n<p>Vervolgens roepen we update_counts() aan, waarbij we dezelfde tekst doorgeven. We leggen die functie zo meteen uit.<\/p>\n<p>Nu we de tekst opslaan, wil je deze opnieuw laden wanneer de app wordt geopend of opnieuw wordt geladen. We kunnen dit doen met een andere listener:<\/p>\n<pre><code class=\"hljs js\"><span class=\"hljs-built_in\">raam<\/span>.addEventListener(<span class=\"hljs-string\">&quot;laden&quot;<\/span>, <span class=\"hljs-function\"><span class=\"hljs-keyword\">functie<\/span>(<span class=\"hljs-params\">ev<\/span>) <\/span>{\r\n    <span class=\"hljs-keyword\">var<\/span> tekst = lokaleOpslag.getItem(<span class=\"hljs-string\">&quot;tekst&quot;<\/span>); textarea.value = tekst; update_counts(tekst); });\r\n<\/code><\/pre>\n<p>Deze listener verwerkt de laadgebeurtenis die plaatsvindt op het vensterobject, een representatie op het hoogste niveau van het browservenster. Wanneer het venster laadt, retourneert een aanroep van getItem() de opgeslagen tekstwaarde uit de lokale opslag. Deze code stelt vervolgens de waarde van het tekstvak in op de geladen tekst en roept, net als de vorige listener, update_counts() aan met deze tekst.<\/p>\n<p>Het resterende werk wordt gedaan in de functie update_counts() die er als volgt uitziet:<\/p>\n<pre><code class=\"hljs js\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">functie<\/span>\u00a0<span class=\"hljs-title\">update_counts<\/span>(<span class=\"hljs-params\">tekst<\/span>) <\/span>{ chars.innerHTML = tekst.lengte; woorden.innerHTML = tekst.split(<span class=\"hljs-string\">' '<\/span>).lengte; }\r\n<\/code><\/pre>\n<p>In tegenstelling tot een tekstvak heeft gewone tekst geen waarde-eigenschap, dus stellen we in plaats daarvan de innerHTML-eigenschap in. De lengte-eigenschap van een string is een eenvoudige alleen-lezen-eigenschap die ons het aantal tekens geeft.<\/p>\n<p>text.split(&#039; &#039;) splitst de string op de spaties en retourneert het resultaat als een array van strings. Net als strings hebben arrays een lengte-eigenschap die het aantal elementen in een array aangeeft.<\/p>\n<p>Als u deze code test, ziet u mogelijk een aantal fouten:<\/p>\n<ol>\n<li>Een woord op zichzelf op een regel wordt niet correct geteld, omdat er geen spaties omheen staan.<\/li>\n<li>Als er helemaal geen tekst is, wordt er \u00e9\u00e9n woord gerapporteerd vanwege de manier waarop de splitsing werkt.<\/li>\n<\/ol>\n<p>Om het eerste probleem op te lossen, kunt u splitsen op een reguliere expressie (\\s betekent &quot;een leeg teken&quot;) in plaats van een spatie. Om het tweede probleem op te lossen, filtert u lege strings uit het resultaat:<\/p>\n<pre><code class=\"hljs js\">    woorden.innerHTML = text.split(<span class=\"hljs-regexp\">\/\\S\/<\/span>).filter(<span class=\"hljs-function\"><span class=\"hljs-keyword\">functie<\/span>(<span class=\"hljs-params\">N<\/span>) <\/span>{ <span class=\"hljs-keyword\">opbrengst<\/span> n != <span class=\"hljs-string\">''<\/span>; }).lengte;\r\n<\/code><\/pre>\n<p>Als je deze zin niet helemaal begrijpt, bekijk dan de MDN-pagina&#039;s voor <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/split\" target=\"_blank\" rel=\"noopener noreferrer\">split<\/a> En <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Array\/filter\" target=\"_blank\" rel=\"noopener noreferrer\">filter<\/a>.<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><source media=\"(min-width: 768px)\" data-=\"\" \/><source media=\"(min-width: 481px)\" data-=\"\" \/><source media=\"(min-width: 0px)\" data-=\"\" \/><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/01\/1736598859_129_Crea-Tu-Primera-Aplicacion-Web-Una-App-de-Notas-Sencilla.png\" alt=\"De webapplicatie met voorbeeldtekst, met nauwkeurige teken- en woordtellingen.\" width=\"960\" height=\"569\" title=\"\"> <\/picture><\/figure>\n<hr \/>\n<p>Met slechts een paar bestanden kun je veel nuttige webapplicaties bouwen. Je kunt deze eenvoudige notitie-app ook uitbreiden met meer functionaliteit. Je kunt bijvoorbeeld de <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Window\/location\" target=\"_blank\" rel=\"noopener\" data-schema-attribute=\"mentions\">window.location-eigenschap<\/a> om de huidige URL op te halen en meerdere notities te ondersteunen door de naam die u doorgeeft aan localStorage.setItem te vari\u00ebren. \ud83d\uddd2\ufe0f\ud83c\udf0d<\/p>","protected":false},"excerpt":{"rendered":"<p>Maak je eerste webapp en sla aantekeningen op met een woordenteller. Leer eenvoudig, snel en gratis! \ud83c\udf10\ud83d\udd8b\ufe0f\u2728<\/p>","protected":false},"author":1,"featured_media":49198,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ai_generated_summary":"","iawp_total_views":39,"jnews-multi-image_gallery":[],"jnews_single_post":[],"jnews_primary_category":[],"jnews_social_meta":[],"jnews_review":[],"enable_review":"","type":"","name":"","summary":"","brand":"","sku":"","good":[],"bad":[],"score_override":"","override_value":"","rating":[],"price":[],"jnews_override_counter":[],"footnotes":""},"categories":[1435],"tags":[1445,1558],"class_list":["post-32655","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriales","tag-evergreencontent","tag-techtips"],"_links":{"self":[{"href":"https:\/\/mastertrend.info\/nl\/wp-json\/wp\/v2\/posts\/32655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mastertrend.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mastertrend.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mastertrend.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mastertrend.info\/nl\/wp-json\/wp\/v2\/comments?post=32655"}],"version-history":[{"count":0,"href":"https:\/\/mastertrend.info\/nl\/wp-json\/wp\/v2\/posts\/32655\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mastertrend.info\/nl\/wp-json\/wp\/v2\/media\/49198"}],"wp:attachment":[{"href":"https:\/\/mastertrend.info\/nl\/wp-json\/wp\/v2\/media?parent=32655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mastertrend.info\/nl\/wp-json\/wp\/v2\/categories?post=32655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mastertrend.info\/nl\/wp-json\/wp\/v2\/tags?post=32655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}