Hva er JavaScript?

Å si at JavaScript er på vei i webutvikling ville være en underdrivelse. Faktisk for år siden, kjente programmør Jeff Atwood mynte Atwoods lov der han sa:

Ethvert program som kan skrives i JavaScript, vil etter hvert bli skrevet i JavaScript.

Når du skriver denne artikkelen, er det så mange JavaScript-rammer og biblioteker at det er overveldende å vite hvor du skal begynne, spesielt hvis du er nybegynner. 

Og jeg vet, mye av det vi publiserer her, er rettet mot de som allerede har erfaring med å skrive webapplikasjoner eller gjøre noe i webutvikling. Men det er det ikke målgruppen for denne artikkelen. 

I stedet er dette skrevet spesielt for de av dere som aldri (eller knapt) har skrevet en linje med JavaScript, og vil lære mer om språket og forstå hva som er der ute. Videre ønsker vi å dekke hvordan det brukes og hva du kan forvente av det.

Kort sagt, hvis du er en erfaren profesjonell, så er denne artikkelen ikke for deg; Men hvis du er nysgjerrig på å komme inn i JavaScript, men ikke er sikker på hvor du skal begynne, så vil denne primeren kanskje sette deg i riktig retning.

Lær JavaScript: Den komplette veiledningen

Vi har bygget en komplett guide for å hjelpe deg med å lære JavaScript, enten du er bare i gang som webutvikler eller du vil utforske mer avanserte emner.

JavaScript definert

Du har sikkert hørt JavaScript referert til som "et script-språk på klientsiden", som er en annen måte å si at det er et programmeringsspråk som kjører i en nettleser. 

Alternativt definerer Wikipedia det på denne måten:

JavaScript er et høyt nivå, dynamisk, untyped og tolket programmeringsspråk. Det har blitt standardisert i ECMAScript språkspesifikasjonen.

Alt ovenfor er sant (med varierende grad av kompleksitet), men det er også verdt å merke seg at JavaScript kan kjøre på server-siden også. Det er imidlertid å komme foran oss selv. I stedet la vi først snakke om noen av punktene ovenfor, og vi kommer til å snakke om server-side JavaScript senere i artikkelen.

  • Høy level. Når et programmeringsspråk er høyt, anses det som en som er bygd uten å måtte vite finere detaljer om den underliggende datamaskinen. Du trenger ikke å administrere minne, du trenger ikke å vite hvilken type prosessor som kjører, og du trenger ikke å håndtere ting som pekere (som på språk som C eller Assembly).
  • dynamisk. Språk som er dynamiske tillater utviklere å utvide visse aspekter av språket ved å legge til ny kode eller introdusere nye objekter (for eksempel a Post objekt) mens programmet kjører i motsetning til å kompilere programmet. Dette er en kraftig funksjon av JavaScript.
  • utypet. Hvis du har noen programmeringserfaring, har du sannsynligvis kommet over visse typer språk som krever at du oppgir hvilken type variabel du jobber med. For eksempel vil kanskje variabelen lagre en string eller a boolean. I JavaScript er dette ikke nødvendig. I stedet erklærer du bare en variabel med Var søkeord.
  • tolket. Når et språk er et kompilert språk, konverteres koden du skriver til en kjørbar binær som du kan distribuere til andre. I Windows er disse filene kjent som EXE-filer. På OS X er det ofte programmer du laster ned fra App Store, eller at du drar inn i Programmer-katalogen. JavaScript tolkes, noe som betyr at det ikke er noen kompilator. I stedet er koden tolket (som er PHP), så det er et mellomliggende stykke programvare kalt tolken som sitter mellom koden du har skrevet og datamaskinen for å oversette instruksjonene frem og tilbake.
  • standardisert. Javascript er standardisert (det offisielle navnet er ECMAScript), noe som betyr at enhver nettleser som implementerer standarden, vil tilby de samme funksjonene som en annen nettleser. Hvis det ikke var standardisert, kan Chrome gi noen funksjoner som Edge ikke gjør, og omvendt.

Nå som vi har dekket språkets attributter, kan vi diskutere visse aspekter og nyanser om språket. 

Selv om alt ovenfor er viktig, er det også viktig å vite hvordan språket fungerer (spesielt hvis du har jobbet med andre språk), slik at du ikke går inn i utviklingen med forhåndsdefinerte ideer om hvordan det kanskje arbeid eller hvordan det bør arbeid.

I stedet vil jeg helst dekke hvordan det gjør arbeid slik at du kan begynne å skrive kode og forstå nøyaktig hva det er som du gjør.

Om språket

Fremfor alt er JavaScript et objektorientert programmeringsspråk, men det er sannsynligvis forskjellig fra det du vanligvis ser (hvis du tidligere har brukt et objektorientert programmeringsspråk).

JavaScript er det som kalles et prototypisk språk. Dette betyr at alle objekter i JavaScript, som string, er basert på prototyper. 

Dette gjør det mulig for oss som utviklere å legge til flere funksjoner for objektene ved bruk av prototypal arv:

Prototypebasert programmering er en stil med objektorientert programmering der gjenbruk av oppførsel (kjent som arv) utføres via en prosess for kloning av eksisterende objekter som tjener som prototyper.

Jeg vil hevde at hvis du aldri har jobbet med et objektorientert språk før, så kan du ha en fordel på dette punktet fordi du ikke har noen konseptuell modell for å skifte for å tenke på hvordan dette virker.

Hvis du derimot ha jobbet i disse typer språk, så synes jeg det er verdt å skille mellom hvordan prototypisk arv avviker fra klassisk arv:

  • I klassisk arv, vi, som utviklere, vil skrive en klasse. Flere objekter kan opprettes fra denne ene klassen. Videre kan vi skrive en annen klasse som arver fra denne klassen og deretter lage forekomster av de klasser. I denne situasjonen deler underklasser kode med sin grunnklasse. Så når du lager en forekomst av en underklasse, får du funksjonaliteten til både underklasse og overordnet klasse.
  • I prototypisk arv, Det er ikke slikt som klasser. I stedet definerer du bare et objekt og introduserer hvilken funksjonalitet som er nødvendig. Når du vil legge til funksjonalitet til et eksisterende objekt, gjør du det ved å legge det til objektets prototype. Hvis du forsøker å ringe en metode på et objekt som Nummer så vil det først se etter metoden på det objektet. Hvis den ikke finner den, vil den bevege seg opp til kjeden til den finner metoden (som kan leve på basen Gjenstand).

Til slutt, og kanskje det viktigste å merke seg, er at når du gjør en endring til et objekt via prototypen, er det tilgjengelig for alle som bruker det objektet (i hvert fall innenfor miljøet ditt).

Det er veldig kraftig, det er veldig kult, men det tar også et lite skifte i å tenke hvis du ikke er vant til å jobbe i et slikt miljø.

Hvordan bruker vi JavaScript?

Når det gjelder hvordan vi faktisk bruker JavaScript, bruker det til slutt hva målene dine er. På et tidspunkt betydde det å jobbe med JavaScript at du måtte "gjøre noe skje" på en nettside. Det var ment å kontrollere oppførselen.

Dette kan være å introdusere et element, fjerne (eller gjemme) et element, eller ting som det. Da avgjorde nettet litt, og nettlesere kunne lage asynkrone samtaler til serveren, håndtere svaret, og deretter endre status på siden basert på dette svaret.

Alt dette oppnås via Ajax. Hvis du leser dette, er du sannsynligvis kjent med begrepet. Hvis du ikke er det, kan du tenke på det som en måte for JavaScript å ringe til serveren som serverer siden og deretter håndtere svaret det mottar alt uten å laste siden på nytt.

Men det er modnet enda mer enn det. 

Google har utviklet en svært sofistikert JavaScript-parsing-motor kjent som V8, og andre nettlesere jobber for å gi optimal JavaScript-ytelse, så vel. 

Faktisk er vi nå i stand til å skrive JavaScript på serveren ved hjelp av verktøy som Node.js. Videre kan vi til og med bygge hybridprogrammer som kjører på våre mobile enheter. Dette betyr at vi kan bygge løsninger for våre telefoner, våre tabletter og stasjonære datamaskiner ved hjelp av JavaScript.

Og dette kommer fra et språk som en gang ble brukt som en måte å animere ting på en skjerm på. Alt dette å si er at hvis du er ny til JavaScript, må du ikke undervurdere den.

"Hva skal jeg forvente av språket?"

Alt dette er interessant å lese, og det er morsomt å se hva vi kan gjøre, men hva rent kan vi forvente fra JavaScript-språk? 

Uansett om du er ny på språket eller du ønsker å lære et nytt språk når du kommer fra en annen bakgrunn, har du et nivå av forventninger til hva språket kan tilby. 

Og selv om vi har snakket om hvordan språket fungerer fra et internt perspektiv, har vi egentlig ikke snakket om objektene som er tilgjengelige på språket, enn si APIer. For å være ærlig, vil dekke APIene og innebygde funksjoner på språket være en artikkel som er helt egen. 

Men dekker sine innebygde objekter? Det er noe vi kan vurdere før du avslutter denne artikkelen:

  • Gjenstand. Basisobjektet fra hvilket alle andre objekter arver noen av deres grunnleggende funksjonalitet.
  • Funksjon. Siden JavaScript er virkelig objektorientert, betyr dette at alt er et objekt, inkludert funksjoner. Så når du lager en ny funksjon, oppretter du en referanse til et objekt med en funksjonstype. Og funksjoner har egenskaper som du kan inspisere under kjøretid (for eksempel argumentene som er sendt inn i det).
  • boolean. Dette objektet fungerer som et objektomslag for en boolsk verdi. På mange språk er boolesker en datatype som enten er ekte eller falsk. I JavaScript kan du fortsatt arbeide med disse verdiene, men de skal forstås som objekter.
  • Nummer. I mange programmeringsspråk er det primitive typer som flyte, int, dobbelt, og så videre. I JavaScript er det bare en talltype, og det er også et objekt.
  • Dato. Arbeide med datoer i programmering er aldri morsomt, spesielt når du introduserer tidssoner. Jeg kan ikke si at JavaScript vil løse alle dine problemer som det gjelder tidszoner, men det kan gjøre det litt enklere å jobbe med datoer (hele veien fra år og måned, hver dag, time, minutt og sekund).
  • string. Nesten alle programmeringsspråk har en primitiv strengdatatype. JavaScript er ikke mye forskjellig bortsett fra at, som du forventer, er strengen et objekt med egne egenskaper.

Husk at alle typer du ser ovenfor er objekter med egenskaper (og funksjoner) som du kan ringe. Dette betyr ikke at du må ringe konstruktører for å instansere variablene dine. Det vil si, du kan lage strenge og booleaner og tall som dette:

var example_string = 'Hei verden!'; var example_boolean = true; var example_number = 42;

Men til slutt er de fremdeles gjenstander.

For å være klar, er disse grunnleggende objekter. Det er langt mer avanserte objekter som er verdt å utforske, spesielt hvis du skal jobbe med feilhåndtering, ulike typer samlinger utover Arrays, og så videre.

Hvis du er interessert i å lese mer om disse, anbefaler jeg på det sterkeste å sjekke ut denne siden i Mozilla Developer Network.

Hvilke biblioteker og rammer er tilgjengelige?

Hvis du har fulgt opp med de ulike rammeverkene, biblioteker og andre verktøy som finnes i JavaScript-økonomien, så er du på ingen måte bak på hvor levende økonomien har blitt.

Men denne artikkelen er rettet mot de som ønsker å komme i gang med JavaScript. Nå som du har en grunnleggende forståelse av hvordan språket er strukturert og hvordan det fungerer, er det på tide å se på bibliotekene og rammene som tilbys for å lette web- og / eller applikasjonsutvikling.

  • jQuery er et bibliotek som har som mål å gi en kryssbrowser-API som lar deg skrive mindre, gjøre mer.
  • Angular er et JavaScript-rammeverk som tar sikte på å gjøre det enklere å bygge enkeltsideapplikasjoner.
  • React er et JavaScript-bibliotek for å bygge brukergrensesnitt.
  • Backbone har som mål å gi struktur til webapplikasjoner ved bruk av modeller, samlinger og visninger.
  • Ember.js er et annet rammeverk for "å skape ambisiøse webapplikasjoner".
  • Og mer.

Dette er langt fra en komplett liste over hva som er tilgjengelig, men det er en start, og det er en rekke alternativer som de som blir kjent med JavaScript, bør være oppmerksomme på, selv om du ikke gjør noe med dem.

Og når du begynner å lære JavaScript og begynner å plukke opp noen av disse verktøyene, kan du kanskje finne ut hvor populært noen av dem er når det kommer til noen av dine egne favorittprogrammer.

Lære JavaScript

Som du har kommet til å forvente, er Envato alt for "lærerferdigheter til millioner over hele verden". Så hva ville et innlegg som dette være hvis det ikke inneholdt koblinger til noen av våre mer populære JavaScript-artikler og kurs?

  • Quiz: JavaScript ES6, vet du det riktige verktøyet for jobben?
  • Holde løfter med JavaScript
  • Opprette enkeltsideapplikasjoner med WordPress og Angular.js
  • Geni av maleri Strings i ES6
  • JavaScript ES6 Fundamentals
  • Testing Angular Directives
  • JavaScript for Windows 10 Universal Apps

Alle disse ressursene er ideelle for å komme i gang med JavaScript og legge den til ditt repertoar av webutviklingsferdigheter.

Konklusjon

Når det gjelder webutvikling, er JavaScript her for å bli. Selv om du kanskje ikke bruker det som anses å være "vanilla JavaScript" og velger en av de mange bibliotekene og / eller rammene som er tilgjengelige, er JavaScript et språk som nesten alle webutviklere burde vite.

Selvfølgelig, ikke alle fungerer på fronten. Noen er rent server-side utviklere; noen er rent klient-side utviklere. Likevel må vi alle jobbe sammen for å sikre at de ulike delene av våre applikasjoner kommuniserer med hverandre.

For det formål er det minst viktig å forstå hvordan data fra klientsiden sendes til server-siden via JavaScript, og hvordan den behandles på server-siden og deretter returneres til klientsiden for å bli brukt på en hvilken som helst måte.

Ikke vær så rask til å skrive ut JavaScript, bare fordi du ikke er en front-end-utvikler. Odds er, noen du jobber med, bruker den og vil trenge arbeidet ditt for å knytte deler av søknaden sammen.

Gitt, denne artikkelen er bare å skrape overflaten. Som jeg sa i begynnelsen, er formålet med artikkelen å forklare hva JavaScript er, hvordan det brukes, og hva du kan forvente av det, spesielt for de som nettopp har startet med språket.

JavaScript har blitt et av de de facto-språkene for å jobbe på nettet. Det er ikke uten det er læringskurver, og det er nok av rammer og biblioteker for å holde deg opptatt også. Hvis du leter etter flere ressurser for å studere eller bruke i arbeidet ditt, sjekk ut hva vi har tilgjengelig på Envato-markedet.

Hvis du har hatt glede av denne artikkelen, kan du også sjekke ut kursene og veiledningene på profilen min, og hvis du er interessert, kan du lese flere artikler spesifikt om WordPress og WordPress-utvikling på bloggen min. 

Tilleggsressurser

  • Hodet Første JavaScript Programmering
  • Eloquent JavaScript av Marijn Haverbeke
  • Douglas Crockfords JavaScript: De gode delene
  • JavaScript på Mozilla Developer Network