Vad är JavaScript?

Att säga att JavaScript är på uppgången i webbutveckling skulle vara en underdrift. Faktum är att förrädaren Jeff Atwood faktiskt för år sedan Atwoods lag där han uppgav:

Alla program som kan skrivas i JavaScript kommer så småningom att skrivas i JavaScript.

När du skriver denna artikel finns det så många JavaScript-ramar och bibliotek att det är överväldigande att veta var du ska börja, speciellt om du är nybörjare. 

Och jag vet att mycket av det vi publicerar här är inriktat på dem som redan har erfarenhet av att skriva webbapplikationer eller göra något i webbutveckling. Men det är inte målgruppen för den här artikeln. 

I stället skrivs det speciellt för dig som aldrig (eller knappt) har skrivit en rad JavaScript, och vill lära dig mer om språket och förstå vad som finns där ute. Dessutom vill vi täcka hur det används och vad man kan förvänta sig av det.

Kort sagt, om du är en erfaren professionell, så är den här artikeln inte för dig. Om du är nyfiken på att komma in i JavaScript men är osäker på var du ska börja, kanske den här grunden hjälper dig att sätta dig i rätt riktning.

Lär dig JavaScript: Den fullständiga guiden

Vi har byggt en komplett guide för att hjälpa dig att lära dig JavaScript, oavsett om du precis börjat som webbutvecklare eller vill utforska mer avancerade ämnen.

JavaScript definierad

Du har säkert hört JavaScript kallat "ett skriptspråk för klienten", vilket är ett annat sätt att säga att det är ett programmeringsspråk som körs i en webbläsare. 

Alternativt definierar Wikipedia det här sättet:

JavaScript är ett högt, dynamiskt, otypat och tolkat programmeringsspråk. Det har standardiserats i ECMAScripts språkspecifikation.

Allt ovanstående är sant (med varierande grad av komplexitet), men det är också värt att notera att JavaScript kan köras på serverns sida också. Det går dock framför oss själva. Låt oss först prata om några av punkterna ovan och vi kommer att prata om serverns JavaScript senare i artikeln.

  • Hög nivå. När ett programmeringsspråk är högt, anses det som en byggd utan att behöva veta finare detaljer om den underliggande datorn. Du behöver inte hantera minne, du behöver inte veta vilken typ av processor som körs, och du behöver inte hantera saker som pekare (som på språk som C eller Assembly).
  • Dynamisk. Språk som är dynamiska låter utvecklare förlänga vissa aspekter av språket genom att lägga till ny kod eller införa nya objekt (t.ex. Posta objekt) medan programmet körs mot att behöva kompilera programmet. Detta är en kraftfull funktion av JavaScript.
  • typlösa. Om du har någon programmeringserfarenhet har du sannolikt stött på vissa typer av språk som kräver att du förklarar vilken typ av variabel du arbetar med. Till exempel kanske din variabel lagrar en sträng eller a boolean. I JavaScript är detta inte nödvändigt. I stället förklarar du enkelt en variabel med var nyckelord.
  • Tolkad. När ett språk är ett kompilerat språk konverteras koden du skriver till ett körbart binärt som du kan distribuera till andra. I Windows är dessa filer kända som EXE-filer. På OS X är det ofta program du hämtar från App Store eller att du drar till din programkatalog. JavaScript tolkas, vilket betyder att det inte finns någon kompilator. I stället tolkas koden (som är PHP), så det finns en mellanliggande mjukvara som kallas tolken som sitter mellan koden du har skrivit och datorn för att översätta instruktionerna fram och tillbaka.
  • standardiserad. JavaScript är standardiserad (dess officiella namn är ECMAScript) vilket innebär att alla webbläsare som implementerar standarden kommer att erbjuda samma funktioner som alla andra webbläsare. Om det inte standardiserades kan Chrome ge några funktioner som Edge inte gör och vice versa.

Nu när vi har täckt språkets attribut kan vi diskutera vissa aspekter och nyanser om språket. 

Även om allt ovan är viktigt är det också viktigt att veta hur språket fungerar (speciellt om du har arbetat med andra språk) så att du inte går in i utvecklingen med förutbestämda idéer om hur det makt jobba eller hur det skall arbete.

I stället skulle jag hellre täcka hur det gör arbeta så att du kan börja skriva kod och förstå exakt vad det är som du gör.

Om språket

Framför allt är JavaScript ett objektorienterat programmeringsspråk, men det skiljer sig sannolikt lite från det du brukar se (om du tidigare har använt ett objektorienterat programmeringsspråk).

JavaScript är det som kallas ett prototypiskt språk. Det innebär att alla objekt i JavaScript, som Sträng, baseras på prototyper. 

Detta gör att vi som utvecklare kan lägga till ytterligare funktionalitet till objekten genom att använda prototypal arv:

Prototypbaserad programmering är en typ av objektorienterad programmering där beteendeåteranvändning (känd som arv) utförs via en process för att klona befintliga objekt som fungerar som prototyper.

Jag skulle argumentera för att om du aldrig har arbetat med ett objektorienterat språk tidigare så kan du ha en fördel just nu eftersom du inte har någon konceptuell modell att flytta för att tänka på hur det fungerar.

Om å andra sidan dig ha arbetat i dessa typer av språk tycker jag att det är värt att skilja hur prototypal arv skiljer sig från klassiskt arv:

  • I klassiskt arv, vi, som utvecklare, kommer att skriva en klass. Flera objekt kan skapas från den här klassen. Dessutom kan vi skriva en annan klass som ärver från denna klass och sedan skapa instanser av de där klasser. I denna situation delar underklasser kod med sin basklass. Så när du skapar en förekomst av en underklass, får du funktionaliteten hos både underklassen och förälderklassen.
  • I prototypal arv, Det finns inget sådant som klasser. Istället definierar du bara ett objekt och presenterar vilken funktion som helst. När du vill lägga till funktionalitet till ett befintligt objekt gör du det genom att lägga till det i objektets prototyp. Om du försöker ringa en metod på ett objekt som siffra då kommer det först att leta efter metoden på det objektet. Om den inte hittar den kommer den att gå upp i kedjan tills den hittar metoden (som kan leva på basen Objekt).

Slutligen och kanske det viktigaste att notera är att när du byter till ett objekt via prototypen, är det tillgängligt för alla som använder det objektet (åtminstone inom ramen för din miljö).

Det är verkligen kraftfullt, det är riktigt coolt, men det tar också ett litet skift i tänkande om du inte brukar arbeta i en sådan miljö.

Hur använder vi JavaScript?

När det gäller hur vi faktiskt sätter JavaScript in bruk, beror det slutligen på vad dina mål är. Vid ett tillfälle medverkade JavaScript med att du behövde "göra något hänt" på en webbsida. Det var meningen att kontrollera beteendet.

Detta kan vara att introducera ett element, ta bort (eller dölja) ett element, eller saker som det. Då avancerade webben lite och webbläsare kunde göra asynkrona samtal till servern, hantera svaret och ändra sedan sidans tillstånd baserat på detta svar.

Allt detta uppnås via Ajax. Om du läser detta är du troligt bekant med termen. Om du inte är det kan du tänka på det som ett sätt för JavaScript att ringa till servern som värd sidan och sedan hantera svaret det tar emot allt utan att ladda om sidan.

Men det är moget även bortom det. 

Google har utvecklat en mycket sofistikerad JavaScript-parsningsmotor som kallas V8, och andra webbläsare arbetar för att ge optimal JavaScript-prestanda, liksom. 

Faktum är att vi nu kan skriva JavaScript på servern med hjälp av verktyg som Node.js. Dessutom kan vi även bygga hybridprogram som körs på våra mobila enheter. Det innebär att vi kan bygga lösningar för våra telefoner, våra tabletter och våra stationära datorer genom att använda JavaScript.

Och det här kommer från ett språk som en gång användes som ett sätt att animera saker på en skärm. Allt detta att säga är att om du är ny på JavaScript, underskatta inte den.

"Vad ska jag förvänta mig av språket?"

Allt ovanstående är intressant att läsa, och det är roligt att se vad vi kan göra, men vad är det rent praktiskt, vad kan vi förvänta oss av JavaScript-språket? 

Oavsett om du är ny på språket eller om du vill lära dig ett nytt språk när du kommer från en annan bakgrund, har du förväntningar på vad språket kan erbjuda. 

Och även om vi har pratat om hur språket fungerar ur ett internt perspektiv har vi inte riktigt pratat om de objekt som finns tillgängliga på språket, än mindre API-er. För att vara ärlig täcker API: erna och inbyggda funktioner i språket en artikel som är helt egen. 

Men täcker de inbyggda objekten? Det är något vi kan granska innan du avslutar den här artikeln:

  • Objekt. Basobjektet från vilket alla andra objekt ärver en del av deras grundläggande funktionalitet.
  • Fungera. Eftersom JavaScript verkligen är objektorienterat betyder det att allt är ett objekt, inklusive funktioner. Så när du skapar en ny funktion skapar du en referens till ett objekt med en funktionstyp. Och funktioner har egenskaper som du kan inspektera under körtid (som argumenten som skickats in).
  • Boolean. Detta objekt fungerar som ett objektomslag för ett booleskt värde. På många språk är boolesan en datatyp som antingen är Sann eller falsk. I JavaScript kan du fortfarande arbeta med dessa värden, men de ska förstås som objekt.
  • siffra. På många programmeringsspråk finns det primitiva typer som flyta, int, dubbel, och så vidare. I JavaScript finns det bara en nummertyp, och det är också ett objekt.
  • Datum. Att arbeta med datum i programmering är aldrig kul, speciellt när du introducerar tidszoner. Jag kan inte säga att JavaScript kommer att lösa alla dina problem när det gäller tidszoner, men det kan göra det lite lättare att arbeta med datum (hela vägen från år och månad dag till dag, timme, minut och sekund).
  • Sträng. Nästan alla programmeringsspråk har en primitiv strängdatatyp. JavaScript är inte så mycket annat än att, som du förväntar dig, strängen är ett objekt med egna egenskaper.

Kom ihåg att alla typer som du ser ovan är objekt med egenskaper (och funktioner) som du kan ringa. Det betyder inte att du behöver ringa konstruktörer för att omorganisera dina variabler. Det vill säga att du kan skapa strängar och booleaner och siffror så här:

var example_string = 'Hej värld!'; var example_boolean = true; var example_number = 42;

Men i slutändan är de fortfarande föremål.

För att vara tydligt är det här grundläggande objekt. Det finns mycket mer avancerade objekt som är värda att utforska, särskilt om du ska arbeta med felhantering, olika typer av samlingar utöver Arrays och så vidare.

Om du är intresserad av att läsa mer om dessa, rekommenderar jag starkt att du kolla in den här sidan i Mozilla Developer Network.

Vilka bibliotek och ramar är tillgängliga?

Om du har följt med de olika ramarna, biblioteken och andra verktyg som finns i JavaScript-ekonomin, så är du inte på något sätt bakom på hur livlig ekonomin har blivit.

Men den här artikeln riktar in sig mot dem som vill komma igång med JavaScript. Nu när du har en grundläggande förståelse för hur språket är strukturerat och hur det fungerar är det dags att titta på de bibliotek och ramar som erbjuds för att underlätta webb- och / eller applikationsutveckling.

  • jQuery är ett bibliotek som syftar till att tillhandahålla ett API för cross-browser som låter dig skriva mindre, göra mer.
  • Angular är en JavaScript-ram som syftar till att göra det enklare att bygga enkelsidiga program.
  • React är ett JavaScript-bibliotek för att bygga användargränssnitt.
  • Ryggraden syftar till att ge strukturen till webbapplikationer genom användning av modeller, samlingar och synpunkter.
  • Ember.js är ett annat ramverk för "att skapa ambitiösa webbapplikationer".
  • Och mer.

Detta är långt från en komplett lista över vad som är tillgängligt, men det är en start, och det är en handfull alternativ som de som känner till JavaScript ska åtminstone vara medvetna om, även om du inte arbetar med dem.

Och när du börjar lära dig JavaScript och börjar hämta några av de här verktygen kan du kanske hitta hur populär några av dem är när det gäller några av dina egna favoritprogram.

Lärande JavaScript

Som du har kommit fram till är Envato allt för "undervisningsförmåga till miljontals världen över". Så vad skulle ett inlägg som detta vara om det inte innehöll länkar till några av våra mer populära JavaScript-artiklar och kurser?

  • Quiz: JavaScript ES6, vet du rätt verktyg för jobbet?
  • Att hålla löften med JavaScript
  • Skapa enkelsidiga program med WordPress och Angular.js
  • Sniffergenen strängar i ES6
  • JavaScript ES6 Fundamentals
  • Testa vinkeldirektiv
  • JavaScript för Windows 10 Universal Apps

Alla dessa resurser är idealiska för att komma igång med JavaScript och lägga till det i din repertoar av webbutvecklingsfärdigheter.

Slutsats

När det gäller webbutveckling är JavaScript här för att stanna. Även om du kanske inte använder vad som anses vara vanilj JavaScript och väljer ett av de många bibliotek och / eller ramar som finns, är JavaScript ett språk som nästan alla webbutvecklare borde veta.

Självklart inte alla arbetar på fronten. Vissa är rent utvecklare av serverns sida. vissa är rent klient-sidautvecklare. Ändå måste vi alla arbeta tillsammans för att se till att de olika delarna av våra applikationer kommunicerar med varandra.

För det ändamålet är det åtminstone viktigt att förstå hur data från klientsidan skickas till serverns sida via JavaScript och hur det behandlas på serverns sida och sedan returneras till kundsidan som ska användas på vilket sätt som helst.

Var inte så snabb att skriva ut JavaScript bara för att du inte är en utvecklare på framsidan. Odds är att någon du arbetar med använder den och kommer att behöva ditt arbete för att knyta delar av ansökan tillsammans.

Beviljas, denna artikel klipper bara ytan. Som jag sa i början, är syftet med artikeln att förklara vad JavaScript är, hur det används och vad man kan förvänta sig av det, särskilt för dem som bara har börjat med språket.

JavaScript har blivit ett av de faktiska språken för att arbeta på webben. Det är inte utan det är inlärningskurvor, och det finns gott om ramar och bibliotek för att hålla dig upptagen också. Om du letar efter ytterligare resurser att studera eller använda i ditt arbete, kolla vad vi har tillgängligt på Envato-marknaden.

Om du har haft den här artikeln kan du även kolla in mina kurser och handledning på min profilsida, och om du är intresserad kan du läsa mer artiklar specifikt om WordPress och WordPress-utveckling på min blogg. 

Ytterligare resurser

  • Huvud första JavaScript-programmering
  • Eloquent JavaScript av Marijn Haverbeke
  • Douglas Crockfords JavaScript: The Good Parts
  • JavaScript på Mozilla Developer Network