Wat is JavaScript?

Om te zeggen dat JavaScript in opkomst is in webontwikkeling zou een understatement zijn. In feite, jaren geleden, bedacht de beroemde programmeur Jeff Atwood De wet van Atwood waarin hij verklaarde:

Elke toepassing die in JavaScript kan worden geschreven, zal uiteindelijk in JavaScript worden geschreven.

Op het moment dat dit artikel wordt geschreven, zijn er zoveel JavaScript-frameworks en -bibliotheken dat het overweldigend is om te weten waar je moet beginnen, vooral als je een beginner bent. 

En ik weet dat veel van wat we hier publiceren is gericht op mensen die al ervaring hebben met het schrijven van webapps of iets doen in webontwikkeling. Maar dat is niet de doelgroep voor dit artikel. 

In plaats daarvan wordt dit specifiek geschreven voor diegenen onder u die nog nooit (of nauwelijks) een regel JavaScript hebben geschreven en meer willen weten over de taal en willen begrijpen wat daar te vinden is. Verder willen we bespreken hoe het wordt gebruikt en wat ervan kan worden verwacht.

Kortom, als je een doorgewinterde professional bent, dan is dit artikel niet voor jou; Als u echter nieuwsgierig bent naar JavaScript, maar niet zeker weet waar u moet beginnen, helpt deze primer u mogelijk in de goede richting te gaan.

Leer JavaScript: de complete gids

We hebben een complete handleiding samengesteld om u te helpen JavaScript te leren, of u net bent begonnen als een webontwikkelaar of dat u meer geavanceerde onderwerpen wilt verkennen.

JavaScript Gedefinieerd

Je hebt waarschijnlijk gehoord dat JavaScript wordt aangeduid als "een client-side scripting language", wat een andere manier is om te zeggen dat het een programmeertaal is die in een webbrowser draait. 

Als alternatief definieert Wikipedia het op deze manier:

JavaScript is een hoogstaande, dynamische, niet-getypeerde en geïnterpreteerde programmeertaal. Het is gestandaardiseerd in de taalspecificatie van ECMAScript.

Al het bovenstaande is waar (met verschillende mate van complexiteit), maar het is ook de moeite waard om op te merken dat JavaScript ook op de server kan draaien. Dat gaat onszelf echter voor. Laten we in plaats daarvan eerst enkele van de bovenstaande punten bespreken en we zullen later in het artikel gaan praten over server-side JavaScript.

  • Hoog niveau. Wanneer een programmeertaal van hoog niveau is, wordt deze beschouwd als een die is gebouwd zonder dat er meer details over de onderliggende computer nodig zijn. U hoeft het geheugen niet te beheren, u hoeft niet te weten welk type processor actief is en u hoeft niet te doen met dingen zoals pointers (zoals in talen zoals C of Assembly).
  • Dynamisch. Talen die dynamisch zijn, stellen ontwikkelaars in staat bepaalde aspecten van de taal uit te breiden door nieuwe code toe te voegen of door nieuwe objecten te introduceren (zoals a Post object) terwijl het programma draait of dat het programma gecompileerd moet worden. Dit is een krachtige functie van JavaScript.
  • ongetypeerde. Als je programmeerervaring hebt, kom je waarschijnlijk bepaalde soorten talen tegen, waarvoor je het type variabele moet opgeven waarmee je werkt. Uw variabele kan bijvoorbeeld een opslaan draad of a boolean. In JavaScript is dit niet nodig. In plaats daarvan declareert u simpelweg een variabele met de var trefwoord.
  • uitgelegd. Wanneer een taal een gecompileerde taal is, wordt de code die u schrijft geconverteerd naar een uitvoerbaar binair getal dat u naar anderen kunt distribueren. In Windows staan ​​deze bestanden bekend als EXE-bestanden. Op OS X zijn dit vaak programma's die u downloadt vanuit de App Store of die u naar uw Applications-map sleept. JavaScript wordt geïnterpreteerd, wat betekent dat er geen compiler is. In plaats daarvan wordt de code geïnterpreteerd (zoals PHP), dus er is een tussenstukje van de software genaamd de interpreter die zit tussen de code die je hebt geschreven en de computer om de instructies heen en weer te vertalen.
  • gestandaardiseerde. JavaScript is gestandaardiseerd (de officiële naam is ECMAScript), wat betekent dat elke browser die de standaard implementeert dezelfde functies biedt als elke andere browser. Als Chrome niet is gestandaardiseerd, biedt deze mogelijk enkele functies die Edge niet biedt en omgekeerd.

Nu we de kenmerken van de taal hebben behandeld, kunnen we bepaalde aspecten en nuances over de taal bespreken. 

Hoewel al het bovenstaande belangrijk is, is het ook van essentieel belang om te weten hoe de taal werkt (vooral als je met andere talen hebt gewerkt), zodat je niet met voorbedachte ideeën in ontwikkeling gaat over hoe het werkt macht werk of hoe het werkt moeten werk.

In plaats daarvan bedenk ik liever hoe het werkt doet werk zo dat je aan de slag kunt met het schrijven van code en precies kunt begrijpen wat je aan het doen bent.

Over de taal

JavaScript is in de eerste plaats een objectgeoriënteerde programmeertaal, maar het verschilt waarschijnlijk een beetje van wat u meestal ziet (als u eerder een objectgeoriënteerde programmeertaal hebt gebruikt).

JavaScript is een prototyptaal. Dit betekent dat alle objecten in JavaScript, zoals Draad, zijn gebaseerd op prototypes. 

Dit stelt ons als ontwikkelaars in staat extra functionaliteit aan de objecten toe te voegen door prototypische overerving te gebruiken:

Prototype-gebaseerde programmering is een stijl van object-georiënteerd programmeren waarin gedrag hergebruik (bekend als inheritance) wordt uitgevoerd via een proces van klonen van bestaande objecten die dienen als prototypen.

Ik zou zeggen dat als je nog nooit eerder met een objectgerichte taal hebt gewerkt, je op dit moment misschien een voordeel hebt omdat je geen conceptueel model hebt om te veranderen om na te denken over hoe dit werkt.

Als, aan de andere kant, jij hebben werkte in dit soort talen, dan denk ik dat het de moeite waard is om te onderscheiden hoe prototypische overerving verschilt van klassieke overerving:

  • In klassieke overerving, wij, als ontwikkelaars, zullen een klasse schrijven. Meerdere objecten kunnen vanuit deze enkele klasse worden gemaakt. Bovendien kunnen we vervolgens een andere klasse schrijven die erft van deze klasse en vervolgens exemplaren maken van die klassen. In deze situatie delen subklassen code met hun basisklasse. Dus wanneer u een exemplaar van een subklasse maakt, krijgt u de functionaliteit van zowel de subklasse als de bovenliggende klasse.
  • In prototypische erfenis, er bestaat niet zoiets als klassen. In plaats daarvan definieert u eenvoudig een object en introduceert u welke functionaliteit nodig is. Wanneer u functionaliteit aan een bestaand object wilt toevoegen, doet u dat door het aan het prototype van het object toe te voegen. Als u een methode probeert te gebruiken voor een object zoals Aantal dan zal het eerst zoeken naar de methode voor dat object. Als het het niet vindt, gaat het omhoog in de ketting totdat het de methode (die op de basis kan leven) vindt Voorwerp).

Tot slot, en misschien wel het belangrijkste om op te merken, is dat wanneer u via zijn prototype een wijziging aanbrengt in een object, het dan toegankelijk is voor iedereen die dat object gebruikt (tenminste binnen de context van uw omgeving).

Het is echt krachtig, het is echt cool, maar er is ook een kleine verandering in het denken nodig als je niet gewend bent om in een dergelijke omgeving te werken.

Hoe gebruiken we JavaScript?

In termen van hoe we JavaScript daadwerkelijk gebruiken, hangt het uiteindelijk af van wat uw doelen zijn. Op een gegeven moment betekende het werken met JavaScript dat je iets moest laten gebeuren op een webpagina. Het was bedoeld om het gedrag te beheersen.

Dit zou een element kunnen introduceren, een element verwijderen of verbergen (of dat soort dingen). Toen ging het web een beetje vooruit en konden browsers asynchrone oproepen maken naar de server, het antwoord afhandelen en vervolgens de status van de pagina wijzigen op basis van dit antwoord.

Dit alles wordt bereikt via Ajax. Als u dit leest, bent u waarschijnlijk bekend met de term. Als dat niet het geval is, kunt u het beschouwen als een manier voor JavaScript om een ​​oproep te doen naar de server die de pagina host en vervolgens omgaat met de reactie die deze ontvangt allemaal zonder de pagina opnieuw te laden.

Maar het is zelfs nog verder volwassen geworden. 

Google heeft een zeer geavanceerde JavaScript-parsing-engine ontwikkeld, bekend als V8, en andere browsers werken ook aan optimale JavaScript-prestaties. 

We kunnen nu zelfs JavaScript op de server schrijven met behulp van tools zoals Node.js. Bovendien kunnen we zelfs hybride applicaties bouwen die op onze mobiele apparaten worden uitgevoerd. Dit betekent dat we via het gebruik van JavaScript oplossingen voor onze telefoons, onze tablets en onze desktopcomputers kunnen bouwen.

En dit komt uit een taal die ooit werd gebruikt als een manier om dingen op een scherm te animeren. Dit alles om te zeggen dat als je nieuw bent bij JavaScript, het niet onderschat.

"Wat moet ik van de taal verwachten?"

Al het bovenstaande is interessant om te lezen, en het is leuk om te zien wat we kunnen doen, maar vanuit een puur praktisch perspectief, wat kunnen we verwachten van de JavaScript-taal.? 

Ongeacht of u de taal nog niet kent of een nieuwe taal wilt leren als u uit een andere achtergrond komt, u hebt een niveau van verwachtingen over wat de taal kan bieden. 

En hoewel we hebben gesproken over hoe de taal vanuit een intern perspectief werkt, hebben we niet echt gesproken over de objecten die beschikbaar zijn in de taal, laat staan ​​API's. Om eerlijk te zijn, zou het behandelen van de API's en ingebouwde functies in de taal een geheel eigen artikel zijn. 

Maar die zijn ingebouwde objecten bedekken? Dat is iets dat we kunnen beoordelen voordat we dit artikel beëindigen:

  • Voorwerp. Het basisobject waarvan alle andere objecten een deel van hun basisfunctionaliteit erven.
  • Functie. Omdat JavaScript echt objectgeoriënteerd is, betekent dit dat alles een object is, inclusief functies. Dus wanneer u een nieuwe functie maakt, maakt u een verwijzing naar een object met een functietype. En functies hebben eigenschappen die u tijdens runtime kunt inspecteren (zoals de argumenten die erin worden doorgegeven).
  • Boolean. Dit object dient als een objectwrapper voor een Booleaanse waarde. In veel talen zijn booleans ook een gegevenstype waar of vals. In JavaScript kunt u nog steeds met deze waarden werken, maar deze moeten als objecten worden begrepen.
  • Aantal. In veel programmeertalen zijn er primitieve typen zoals vlotter, int, dubbele, enzovoorts. In JavaScript is er alleen een nummertype en het is ook een object.
  • Datum. Werken met datums in programmeren is nooit leuk, vooral als je tijdzones introduceert. Ik kan niet zeggen dat JavaScript al je problemen op het gebied van tijdzones zal oplossen, maar het kan het een beetje eenvoudiger maken om met datums te werken (helemaal van jaar en maand tot dag, uur, minuut en seconde).
  • Draad. Bijna elke programmeertaal heeft een primitief tekenreeksgegevenstype. JavaScript is niet veel anders, behalve dat, zoals je zou verwachten, de string een object is met eigen eigenschappen.

Houd er rekening mee dat alle typen die u hierboven ziet, objecten zijn met eigenschappen (en functies) die u kunt oproepen. Dit betekent niet dat je constructeurs moet bellen om je variabelen te instantiëren. Dat wil zeggen, je kunt strings en booleans en nummers als volgt creëren:

var example_string = 'Hallo wereld!'; var example_boolean = true; var example_number = 42;

Maar uiteindelijk zijn het nog steeds objecten.

Voor de duidelijkheid, dit zijn de basis- voorwerpen. Er zijn veel geavanceerdere objecten die de moeite waard zijn om te verkennen, vooral als je gaat werken met foutafhandeling, verschillende soorten collecties buiten Arrays, enzovoort.

Als u meer wilt weten over deze informatie, raad ik u aan deze pagina in Mozilla Developer Network te bekijken.

Welke bibliotheken en frameworks zijn beschikbaar?

Als u de verschillende kaders, bibliotheken en andere hulpmiddelen in de JavaScript-economie hebt bijgehouden, bent u absoluut niet achterop hoe bruisend de economie is geworden.

Maar dit artikel is gericht op degenen die op zoek zijn om aan de slag te gaan met JavaScript. Nu u een basiskennis heeft van hoe de taal is gestructureerd en hoe deze werkt, is het tijd om te kijken naar de aangeboden bibliotheken en frameworks om het web en / of applicatie-ontwikkeling te vergemakkelijken..

  • jQuery is een bibliotheek die een API voor meerdere browsers biedt waarmee u "minder kunt schrijven, meer doen".
  • Angular is een JavaScript-framework dat tot doel heeft om het bouwen van applicaties met één pagina eenvoudiger te maken.
  • React is een JavaScript-bibliotheek voor het bouwen van gebruikersinterfaces.
  • Backbone beoogt structuur te geven aan webapplicaties door het gebruik van modellen, collecties en views.
  • Ember.js is een ander kader voor "het creëren van ambitieuze webapplicaties".
  • En meer.

Dit is ver uit een volledige lijst van wat er beschikbaar is, maar het is een begin, en het is een handvol opties waarvan degenen die vertrouwd raken met JavaScript zich tenminste bewust moeten zijn, zelfs als je er geen werk mee doet.

En wanneer u JavaScript begint te leren en sommige van deze tools begint te leren, zult u wellicht ontdekken hoe populair sommige zijn als het gaat om enkele van uw zeer favoriete toepassingen.

JavaScript leren

Zoals je gewend bent, is Envato helemaal voor 'het lesgeven aan miljoenen mensen wereldwijd'. Dus wat zou een bericht als dit zijn als het geen links bevat naar enkele van onze meer populaire JavaScript-artikelen en -cursussen?

  • Quiz: JavaScript ES6, Ken je het juiste hulpmiddel voor de taak?
  • Beloftes houden met JavaScript
  • Applicaties voor één pagina maken met WordPress en Angular.js
  • Het genie van sjabloonstrings in ES6
  • JavaScript ES6 Fundamentals
  • Hoekige richtlijnen testen
  • JavaScript voor Windows 10 universele apps

Al deze bronnen zijn ideaal om aan de slag te gaan met JavaScript en het toe te voegen aan uw repertoire aan vaardigheden voor webontwikkeling.

Conclusie

Als het gaat om webontwikkeling, JavaScript is hier om te blijven. Hoewel u niet mag gebruiken wat wordt beschouwd als "vanilla JavaScript" en u kiest voor een van de vele beschikbare bibliotheken en / of frameworks, is JavaScript een taal die bijna elke webontwikkelaar moet weten.

Natuurlijk niet iedereen werkt aan de voorkant. Sommige zijn puur server-side ontwikkelaars; sommige zijn puur klantgerichte ontwikkelaars. Desalniettemin moeten we allemaal samenwerken om ervoor te zorgen dat de verschillende delen van onze applicaties met elkaar communiceren.

Daarom is het op zijn minst belangrijk om te begrijpen hoe gegevens van de client-kant via JavaScript naar de server worden verzonden, en hoe deze aan de serverzijde wordt verwerkt en vervolgens naar de client-kant wordt teruggestuurd om op welke manier dan ook te worden gebruikt.

Wees niet zo snel om JavaScript weg te schrijven, alleen maar omdat je geen front-end ontwikkelaar bent. De kans is groot dat iemand met wie je werkt het gebruikt en je werk nodig hebt om delen van de applicatie met elkaar te verbinden.

Toegegeven, dit artikel krabt slechts het oppervlak. Zoals ik aan het begin al zei, is het doel van het artikel om uit te leggen wat JavaScript is, hoe het wordt gebruikt en wat het kan verwachten, vooral voor degenen die net begonnen zijn met de taal..

JavaScript is een van de de-facto talen geworden van het werken op het web. Het is niet zonder zijn leercurve, en er zijn ook genoeg kaders en bibliotheken om je bezig te houden. Als u op zoek bent naar extra bronnen om te studeren of te gebruiken in uw werk, kijk dan wat we beschikbaar hebben op de Envato-marktplaats.

Als je dit artikel leuk vond, kun je ook mijn cursussen en tutorials bekijken op mijn profielpagina. Als je geïnteresseerd bent, kun je meer artikelen over WordPress en WordPress op mijn blog lezen. 

Aanvullende bronnen

  • Head First JavaScript Programming
  • Eloquent JavaScript door Marijn Haverbeke
  • JavaScript van Douglas Crockford: The Good Parts
  • JavaScript op het Mozilla Developer Network