Che cos'è JavaScript?

Dire che JavaScript è in crescita nello sviluppo del web sarebbe un eufemismo. Infatti, anni fa, il famoso programmatore Jeff Atwood coniava Legge di Atwood in cui affermava:

Qualsiasi applicazione che possa essere scritta in JavaScript, verrà eventualmente scritta in JavaScript.

Al momento della stesura di questo articolo, ci sono così tanti framework e librerie JavaScript che è opprimente sapere da dove cominciare, specialmente se sei un principiante. 

E so che molto di ciò che pubblichiamo qui è orientato verso coloro che hanno già esperienza nello scrivere applicazioni web o fare qualcosa nello sviluppo web. Ma questo non è il pubblico di destinazione per questo articolo. 

Invece, questo è stato scritto appositamente per quelli di voi che non hanno mai scritto (o appena) una riga di JavaScript, e vogliono saperne di più sulla lingua e capire cosa c'è là fuori. Inoltre, vogliamo capire come è usato e cosa aspettarsi da esso.

In breve, se sei un professionista esperto, questo articolo non fa per te; tuttavia, se sei curioso di entrare in JavaScript ma non sai da dove iniziare, allora questo primer ti aiuterà a orientarti nella giusta direzione.

Scopri JavaScript: la guida completa

Abbiamo creato una guida completa per aiutarti a imparare JavaScript, sia che tu stia appena iniziando come sviluppatore web o che desideri esplorare argomenti più avanzati.

JavaScript definito

Probabilmente hai sentito JavaScript chiamato "linguaggio di scripting sul lato client", che è un altro modo per dire che è un linguaggio di programmazione che viene eseguito in un browser web. 

In alternativa, Wikipedia lo definisce in questo modo:

JavaScript è un linguaggio di programmazione di alto livello, dinamico, non tipizzato e interpretato. È stato standardizzato nelle specifiche del linguaggio ECMAScript.

Tutto quanto sopra è vero (con vari gradi di complessità), ma vale anche la pena notare che JavaScript può essere eseguito anche sul lato server. Questo sta andando avanti di noi stessi, però. Invece, parliamo prima di alcuni dei punti sopra e verremo a parlare di JavaScript lato server più avanti nell'articolo.

  • Alto livello. Quando un linguaggio di programmazione è di alto livello, è considerato uno che è stato creato senza la necessità di conoscere dettagli più fini sul computer sottostante. Non devi gestire la memoria, non devi sapere che tipo di processore è in esecuzione e non devi occuparti di cose come i puntatori (come in linguaggi come C o Assembly).
  • Dinamico. Le lingue dinamiche consentono agli sviluppatori di estendere alcuni aspetti della lingua aggiungendo nuovo codice o introducendo nuovi oggetti (come a Inviare oggetto) mentre il programma è in esecuzione contro la necessità di compilare il programma. Questa è una potente funzione di JavaScript.
  • non tipizzato. Se hai esperienza di programmazione, probabilmente ti imbatterai in certi tipi di linguaggi che richiedono di dichiarare il tipo di variabile con cui stai lavorando. Ad esempio, forse la tua variabile memorizzerà a stringa o a booleano. In JavaScript, questo non è necessario. Invece, si dichiara semplicemente una variabile con il var parola chiave.
  • Interpretato. Quando una lingua è un linguaggio compilato, il codice che scrivi viene convertito in un binario eseguibile che puoi distribuire ad altri. In Windows, questi file sono noti come file EXE. Su OS X, questi sono spesso programmi scaricati da App Store o che si trascinano nella directory Applicazioni. JavaScript è interpretato, il che significa che non esiste un compilatore. Invece, il codice è interpretato (come PHP), quindi c'è un software intermedio chiamato l'interprete che si trova tra il codice che hai scritto e il computer per tradurre le istruzioni avanti e indietro.
  • standardizzato. JavaScript è standardizzato (il suo nome ufficiale è ECMAScript), il che significa che qualsiasi browser che implementa lo standard offrirà le stesse funzionalità di qualsiasi altro browser. Se non fosse standardizzato, Chrome potrebbe fornire alcune funzionalità che Edge non ha e vice versa.

Ora che abbiamo coperto gli attributi della lingua, possiamo discutere alcuni aspetti e sfumature della lingua. 

Anche se tutto quanto sopra è importante, è anche essenziale sapere come funziona la lingua (specialmente se hai lavorato con altre lingue) in modo che tu non entri in sviluppo con idee preconcette su come potrebbe lavoro o come dovrebbero lavoro.

Invece, preferirei vedere come fa lavora in modo che tu possa iniziare a scrivere codice e capire esattamente cosa stai facendo.

Informazioni sulla lingua

Soprattutto, JavaScript è un linguaggio di programmazione orientato agli oggetti, ma probabilmente differisce un po 'da quello che si vede di solito (se in precedenza hai utilizzato un linguaggio di programmazione orientato agli oggetti).

JavaScript è ciò che viene chiamato un linguaggio prototipo. Ciò significa che tutti gli oggetti in JavaScript, come Stringa, sono basati su prototipi. 

Questo ci consente, come sviluppatori, di aggiungere funzionalità aggiuntive agli oggetti attraverso l'utilizzo dell'ereditarietà prototipale:

La programmazione basata su prototipi è uno stile di programmazione orientata agli oggetti in cui il riutilizzo del comportamento (noto come ereditarietà) viene eseguito tramite un processo di clonazione di oggetti esistenti che fungono da prototipo.

Direi che se non hai mai lavorato con un linguaggio orientato agli oggetti prima, potresti avere un vantaggio a questo punto perché non hai un modello concettuale da spostare per pensare a come funziona.

Se, d'altra parte, tu avere Ho lavorato in questi tipi di linguaggi quindi penso che valga la pena distinguere come l'eredità prototipale differisca dall'ereditarietà classica:

  • Nel eredità classica, noi, come sviluppatori, scriveremo una classe. Più oggetti possono essere creati da questa singola classe. Inoltre, possiamo quindi scrivere un'altra classe che eredita da questa classe e quindi creare istanze di quelli classi. In questa situazione, le sottoclassi condividono il codice con la loro classe base. Quindi quando crei un'istanza di una sottoclasse, ottieni la funzionalità sia della sottoclasse che della classe genitore.
  • Nel eredità prototipale, non esistono lezioni. Invece, si definisce semplicemente un oggetto e si introduce qualsiasi funzionalità necessaria. Quando si desidera aggiungere funzionalità a un oggetto esistente, lo si fa aggiungendolo al prototipo dell'oggetto. Se si tenta di chiamare un metodo su un oggetto come Numero quindi cercherà prima il metodo su quell'oggetto. Se non lo trova, allora salirà la catena finché non troverà il metodo (che potrebbe vivere sulla base Oggetto).

Infine, e forse la cosa più importante da notare, è che quando modifichi un oggetto tramite il suo prototipo, è accessibile a tutti coloro che usano quell'oggetto (almeno nel contesto del tuo ambiente).

È davvero potente, è davvero bello, ma ci vuole anche un leggero cambiamento nel pensare se non sei abituato a lavorare in un ambiente come quello.

Come utilizziamo JavaScript?

In termini di come mettiamo effettivamente JavaScript da usare, in definitiva dipende da quali sono i tuoi obiettivi. A un certo punto, lavorare con JavaScript significava che era necessario "far accadere qualcosa" su una pagina web. Era pensato per controllare il comportamento.

Questo potrebbe introdurre un elemento, rimuovere (o nascondere) un elemento o cose del genere. Poi il web è avanzato un po 'e i browser sono stati in grado di effettuare chiamate asincrone al server, gestire la risposta e quindi modificare lo stato della pagina in base a questa risposta.

Tutto questo è realizzato tramite Ajax. Se stai leggendo questo, probabilmente avrai familiarità con il termine. Se non lo sei, puoi considerarlo come un modo per JavaScript per effettuare una chiamata al server che ospita la pagina e quindi gestire la risposta che riceve tutto senza ricaricare la pagina.

Ma è maturato anche oltre. 

Google ha sviluppato un motore di analisi JavaScript altamente sofisticato noto come V8 e altri browser stanno lavorando per fornire anche prestazioni JavaScript ottimali. 

In effetti, ora siamo in grado di scrivere JavaScript sul server usando strumenti come Node.js. Inoltre, siamo persino in grado di creare applicazioni ibride eseguite sui nostri dispositivi mobili. Ciò significa che siamo in grado di creare soluzioni per i nostri telefoni, i nostri tablet e i nostri computer desktop attraverso l'uso di JavaScript.

E questo viene da un linguaggio che una volta veniva usato come un modo per animare le cose su uno schermo. Tutto ciò da dire è che se sei nuovo in JavaScript, non sottovalutarlo.

"Cosa devo aspettarmi dalla lingua?"

Tutto questo è interessante da leggere ed è divertente vedere cosa siamo in grado di fare, ma da una prospettiva puramente pratica, cosa possiamo aspettarci dal linguaggio JavaScript? 

Indipendentemente dal fatto che tu sia nuovo nella lingua o stai cercando di imparare una nuova lingua quando provi da un altro background, hai un livello di aspettative su ciò che la lingua può offrire. 

E anche se abbiamo parlato di come la lingua funziona da una prospettiva interna, non abbiamo davvero parlato degli oggetti disponibili nella lingua, per non parlare delle API. Per essere onesti, coprire le API e le funzioni integrate nella lingua sarebbe un articolo tutto suo. 

Ma coprendo i suoi oggetti built-in? Questo è qualcosa che possiamo esaminare prima di terminare questo articolo:

  • Oggetto. L'oggetto di base da cui tutti gli altri oggetti ereditano alcune delle loro funzionalità di base.
  • Funzione. Poiché JavaScript è veramente orientato agli oggetti, ciò significa che tutto è un oggetto, incluse le funzioni. Quindi quando crei una nuova funzione, stai creando un riferimento a un oggetto con un tipo di funzione. E le funzioni hanno proprietà che puoi controllare durante il runtime (come gli argomenti passati in esso).
  • booleano. Questo oggetto funge da object wrapper per un valore booleano. In molte lingue, i booleani sono anche un tipo di dati vero o falso. In JavaScript, puoi ancora lavorare con quei valori, ma devono essere intesi come oggetti.
  • Numero. In molti linguaggi di programmazione ci sono tipi primitivi come galleggiante, int, Doppio, e così via. In JavaScript, c'è solo un tipo di numero, ed anche questo è un oggetto.
  • Data. Lavorare con le date in programmazione non è mai divertente, specialmente quando si introducono fusi orari. Non posso dire che JavaScript risolverà tutti i tuoi problemi in relazione ai fusi orari, ma può rendere un po 'più facile lavorare con le date (tutto l'anno e il mese fino al giorno, ora, minuto e secondo).
  • Stringa. Quasi ogni linguaggio di programmazione ha un tipo di dati stringa primitivo. JavaScript non è molto diverso, tranne che, come ci si aspetterebbe, la stringa è un oggetto con proprietà proprie.

Ricorda che tutti i tipi che vedi sopra sono oggetti con proprietà (e funzioni) che puoi chiamare. Ciò non significa che è necessario chiamare i costruttori per creare un'istanza delle variabili. Cioè, puoi creare stringhe e booleani e numeri come questo:

var example_string = 'Ciao mondo!'; var example_boolean = true; var example_number = 42;

Ma alla fine sono ancora oggetti.

Per essere chiari, questi sono i di base oggetti. Ci sono oggetti molto più avanzati che vale la pena esplorare, specialmente se si lavorerà con la gestione degli errori, vari tipi di raccolte oltre gli array e così via.

Se sei interessato a leggere ulteriori informazioni su questi, ti consiglio vivamente di visitare questa pagina nella Rete per sviluppatori Mozilla.

Quali librerie e framework sono disponibili?

Se hai tenuto il passo con i vari framework, librerie e altri strumenti che esistono nell'economia JavaScript, allora non sei affatto indietro su quanto sia diventata vivace l'economia.

Ma questo articolo è rivolto a coloro che stanno cercando di iniziare con JavaScript. Ora che hai una comprensione di base di come è strutturata la lingua e di come funziona, è il momento di esaminare le librerie e i framework offerti per facilitare lo sviluppo di applicazioni web e / o applicazioni.

  • jQuery è una libreria che mira a fornire un'API cross-browser che ti consente di "scrivere di meno, fare di più".
  • Angular è un framework JavaScript che mira a rendere più semplice la creazione di applicazioni a pagina singola.
  • React è una libreria JavaScript per la costruzione di interfacce utente.
  • Backbone mira a strutturare le applicazioni web attraverso l'uso di modelli, collezioni e viste.
  • Ember.js è un altro framework per "creare applicazioni web ambiziose".
  • E altro ancora.

Questo è lontano da un elenco completo di ciò che è disponibile, ma è un inizio, ed è una manciata di opzioni che chi ha familiarità con JavaScript dovrebbe almeno essere a conoscenza, anche se non si fa alcun lavoro con loro.

E mentre inizi a imparare JavaScript e inizi a prendere alcuni di questi strumenti, potresti scoprire quanto siano popolari alcuni di loro quando si tratta di alcune delle tue applicazioni preferite.

Apprendimento di JavaScript

Come ci si aspetta, Envato è tutto per "insegnare a milioni di persone in tutto il mondo". Quindi, cosa sarebbe un post di questo tipo se non includesse i link ad alcuni dei nostri articoli e corsi JavaScript più popolari?

  • Quiz: JavaScript ES6, conosci lo strumento giusto per il lavoro?
  • Mantenere le promesse con JavaScript
  • Creazione di applicazioni a singola pagina con WordPress e Angular.js
  • Il genio delle stringhe di modelli in ES6
  • JavaScript ES6 Fundamentals
  • Test delle direttive angolari
  • JavaScript per Windows 10 Universal Apps

Tutte queste risorse sono ideali per iniziare con JavaScript e aggiungerle al tuo repertorio di competenze di sviluppo web.

Conclusione

Quando si tratta di sviluppo web, JavaScript è qui per rimanere. Sebbene tu non possa usare quello che è considerato come "vanilla JavaScript" e optare per una delle tante librerie e / o framework disponibili, JavaScript è un linguaggio che quasi tutti gli sviluppatori web dovrebbero conoscere.

Ovviamente no tutti lavora sul front-end. Alcuni sono puramente sviluppatori lato server; alcuni sono puramente sviluppatori lato client. Ciononostante, dobbiamo lavorare tutti insieme per assicurarci che le varie parti delle nostre applicazioni comunichino tra loro.

A tal fine, è almeno importante capire come i dati dal lato client vengono inviati al lato server tramite JavaScript, e come viene elaborato sul lato server e quindi restituito al lato client per essere utilizzato in qualsiasi modo.

Non essere così veloce a scrivere JavaScript solo perché non sei uno sviluppatore front-end. Le probabilità sono: qualcuno con cui stai lavorando lo sta usando e avrà bisogno del tuo lavoro per legare insieme parti dell'applicazione.

Certo, questo articolo è solo grattando la superficie. Come ho detto all'inizio, lo scopo dell'articolo è quello di spiegare cos'è JavaScript, come è usato e cosa aspettarsi da esso, in particolare per coloro che stanno appena iniziando con la lingua.

JavaScript è diventato una delle lingue di fatto di lavorare sul web. Non è senza le curve di apprendimento, e ci sono un sacco di quadri e librerie per tenerti occupato, pure. Se stai cercando ulteriori risorse da studiare o da utilizzare nel tuo lavoro, dai un'occhiata a ciò che abbiamo a disposizione sul mercato Envato.

Se ti è piaciuto questo articolo, puoi anche controllare i miei corsi ed esercitazioni sulla mia pagina del profilo e, se sei interessato, puoi leggere altri articoli specifici su WordPress e WordPress sul mio blog. 

Risorse addizionali

  • Testa la prima programmazione JavaScript
  • Eloquente JavaScript di Marijn Haverbeke
  • JavaScript di Douglas Crockford: The Good Parts
  • JavaScript nella rete di sviluppatori Mozilla