Storia e basi del Javascript

Di TheXanada96

Attivare JavaScript: istruzioni per Firefox, Chrome & Co. - IONOS

Storia

Negli anni 90 il colosso del web Netscape voleva rivoluzionare il mondo del web, all’epoca con le pagine erano solo statiche e peccavano di interazioni dirette nella fiorente scena dello sviluppo web c’era il desiderio di rimuovere questa limitazione.

Nel 1995 la compagnia inizia una collaborazione con Sun Microsystems (azienda statunitense famosa per la creazione di workstation, server e il linguaggio Java) inizialmente l’idea era quella di integrare Java nel web, ma l’ingegnere informatico Brendan Eich di Netscape spinse per un nuovo linguaggio di programmazione con sintassi simile a Java ma diverso dagli altri linguaggi precedenti e molto più intuitivo.

Il linguaggio debuttò col nome di Livescript e fu integrato nelle versioni aggiornate di Navigator, ma mesi dopo il nome del linguaggio fu cambiato in Javascript per dare l’impressione che si trattava di uno spin-off di Java. Poiché all’epoca Java era il nuovo linguaggio di programmazione, questo è stato definito come uno stratagemma di marketing da parte di Netscape per fornire il proprio nuovo cachet linguistico.

Le notizie di questo nuovo linguaggio dinamico colpì l’interesse della Microsoft che debuttando con Internet Explorer nel 1995, portando a una guerra dei browser con Netscape. Sul fronte JavaScript, Microsoft ha decodificato l’interprete Navigator per crearne uno proprio, chiamato JScript viene rilasciato per la prima volta nel 1996, insieme al supporto iniziale per CSS ed estensioni per HTML.

La popolarità di Internet Explorer favorisce l’ascesa di JScript, ma nel novembre 1996, Netscape ha presentato JavaScript a ECMA International, come punto di partenza per una specifica standard a cui tutti i produttori di browser potevano conformarsi. Ciò ha portato al rilascio ufficiale della prima specifica del linguaggio ECMAScript nel giugno 1997

Ma nel frattempo, Microsoft ha guadagnato una posizione sempre più dominante nel mercato dei browser. All’inizio degli anni 2000, la quota di mercato di Internet Explorer ha raggiunto il 95%.

Ciò significa che JScript è diventato lo standard de facto per lo scripting lato client sul Web, Microsoft ha inizialmente partecipato al processo di standardizzazione e implementato alcune proposte nel suo linguaggio JScript, rendendolo licenza chiusa, ma alla fine ha smesso di collaborare al lavoro di ECMA. Così ECMAScript 4 è stato messo fuori servizio.

Nel frattempo, sviluppi molto importanti si stavano verificando nelle comunità open source non affiliate al lavoro dell’ECMA che ripresero il Javascript.

Nel 2005, Jesse James Garrett ha pubblicato un rapporto ufficiale in cui ha coniato il termine AJAX (Asynchronous JavaScript and XML) e descritto un insieme di tecnologie, di cui JavaScript era la spina dorsale, per creare applicazioni web dove i dati possono essere caricati in background, evitando la necessità di una pagina intera ricarica. Ciò ha innescato un periodo rinascimentale di JavaScript, guidato dalle librerie open source e dalle comunità che si sono formate intorno a loro.

Sono state create molte nuove librerie da aqllora tra cui jQuery, Prototype, Dojo Toolkit e MooTools. Google ha lanciato il suo browser Chrome nel 2008, con il motore JavaScript V8 che era più veloce della concorrenza, con questo il linguaggio non farà altro che crescere di importanza arrivando alla situazione attuale.

Cos’è Javascript?

Javascript è un linguaggio di programmazione dinamico per computer, è molto leggero ed è comunemente usato per aggiungere interazioni e animazioni nelle pagine Web, ma è a anche usato per lo sviluppo di applicazioni e plugin e circa 67% dei programmatori lavora costantemente con esso.

Viene considerato uno dei linguaggi più importanti da conoscere e oggi viene utilizzato per costruire il 95,2% (1,52 miliardi) dei siti web, inclusi alcuni dei più grandi al mondo, come Facebook, Twitter e YouTube sono costruiti con Javascript.

Per eseguire Javascript al di fuori del browser bisogna usare Node.js ma nonostante l’utilizzo di Node.js sia cresciuto il campo principale di applicazione rimane comunque il browser.

Dal suo rilascio, JavaScript ha superato Java, ActionScript e altri linguaggi perché è relativamente facile da imparare, ha una comunità libera e aperta e, soprattutto, è incredibilmente utile, consentendo agli sviluppatori di creare rapidamente app.

Differenza tra Java e Javascript

C’è spesso un po ‘di confusione sui due, ma JavaScript e Java non hanno quasi nulla in comune. Il nome JavaScript deriva dall’idea del supporto di Netscape di applet Java, ma molti dicono che fosse anche una tattica di marketing per distogliere l’attenzione da Java, che all’epoca era il linguaggio più chiacchierato.

D’altra parte, JavaScript è stato creato per essere interpretato in fase di esecuzione, rendendolo molto più dinamico (di questi tempi era veramente una novità). JavaScript non è partito esattamente nel migliore dei modi, non funzionava altrettanto bene e coloro che sviluppavano in Java consideravano JavaScript più un “clone fatto male” da utilizzare principalmente da designer e altri non ingegneri. Ma la realtà è che avere un linguaggio del genere ha permesso a Internet di prosperare davvero. I programmatori potrebbero reagire meglio per utilizzare eventi e comporre componenti interattivi. E a causa di ciò, JavaScript si è diffuso a macchia d’olio e molto rapidamente è diventato la lingua franca del web.

Vantaggi

Semplicità del linguaggio: Javascript è considerato uno dei linguaggi di programmazione è più semplici da usare, spesso affiancato a Python, non necessita installazioni di pacchetti e può essere

Popolarità: JavaScript è utilizzato ovunque sul Web, ed è comunque utilizzato in molti plugin, quindi è facile contare sulle comunità per ricevere qualche supporto.

Interfacce più ricche: puoi utilizzare JavaScript per includere elementi come componenti animazioni e cursori personalizzati per il sito, per fornire un’interfaccia ricca ai visitatori del tuo sito.

Feedback immediato per i visitatori: non devono aspettare il ricaricamento di una pagina per vedere se si sono dimenticati di inserire qualcosa.

Interoperabilità: JavaScript funziona bene con altri linguaggi e può essere utilizzato come plugin in un’ampia varietà di applicazioni.

Minore interazione con il server: è possibile convalidare l’input dell’utente prima di inviare la pagina al server. Ciò consente di risparmiare traffico sul server, il che significa meno carico sul server.

Svantaggi

Sicurezza: Poiché il codice viene eseguito sul computer degli utenti, in alcuni casi può essere sfruttato per scopi dannosi. Molti virus vengono creati in Javascript, questo è uno dei motivi per cui alcune persone scelgono di disabilitare Javascript.

Meno potenza: JavaScript non ha alcuna capacità di multithreading o multiprocessore.

Usato più per il web: Javascript è nato per servire il lato web, e riceve meno supporto per le applicazioni.

Strumenti di sviluppo JavaScript

Uno dei principali punti di forza di JavaScript è che non richiede costosi strumenti di sviluppo. Puoi iniziare con un semplice editor di testo come Blocco note.

Ma gli editor che consiglio sono questi:

Visual Studio Code: Visual Studio Code è uno dei prodotti Microsoft atipici in modo tale da poter funzionare su sistemi Linux e MacOS. Oltre a JavaScript, Visual Studio Code fornisce il supporto per oltre 30 linguaggi di programmazione sin d’ora, inclusi C #, HTML5, PHP e Ruby. Come Visual Studio, Visual Studio Code viene fornito con la funzionalità IntelliSense. Assiste gli sviluppatori elencando suggerimenti sul codice, suggerimenti e descrizioni dei parametri. Per il debug di app basate su JS e NodeJS, l’editor del codice sorgente viene fornito con un debugger di prim’ordine. Lo sviluppatore può avviare l’applicazione in modalità debug o aggiungere manualmente il debugger in fase di esecuzione. Le caratteristiche degne di nota del debugger integrato di Visual Studio Code includono lo stack di chiamate, l’impostazione dei punti di interruzione e le variabili di controllo. Visual Studio Code offre un’utile funzionalità chiamata Peek. Consente di espandere la definizione di qualsiasi funzione in un popup in linea. Un’altra caratteristica utile vantata dall’editor del codice sorgente è TaskRunner. Consente di creare e configurare attività per utilizzare Grunt, Gulp o MSBuild. Oltre a monitorare tutte le modifiche apportate a un file, Visual Studio Code consente di eseguire comandi come commit, pubblicazione, pull, push e rebase grazie al supporto Git integrato. L’esplorazione del progetto corrente o di una directory è possibile con la CLI incorporata.

Atom IDE: Atom IDE è uno dei più popolari editor di codice sorgente utilizzato per lo sviluppo di JavaScript. Il moderno editor di codice è flessibile e altamente personalizzabile. Uno strumento multipiattaforma, Atom è facile da installare, offre un notevole guadagno di velocità ed è completamente gratuito. La base di Atom è Electron, un framework molto popolare per la creazione di applicazioni desktop multipiattaforma utilizzando JavaScript. Il completamento intelligente del codice è inerente ad Atom, che vanta anche un browser del file system intuitivo. Sono disponibili anche diversi temi dell’interfaccia utente e della sintassi. La capacità di Atom può essere estesa mediante l’aggiunta di pacchetti, come i tag HTML a chiusura automatica, Minimap e Linter. Atom ha un gestore di pacchetti integrato che semplifica la ricerca dei pacchetti disponibili e l’installazione prioritaria.

Notepad++: Notepad++ è un editor testuale open source versatile e facilmemte utilizzabile, anche per lo sviluppo di siti web e di altri linguaggi di programmazione sofisticato e professionale, è largamente utilizzato da moltissimi sviluppatori, soprattuto per vedere la come è formato un file.

Iniziamo con Javascript

JavaScript può essere implementato utilizzando istruzioni che vengono inserite all’interno dei tag HTML <script></script> in una pagina web. Puoi inserire i tag <script>, contenenti il tuo JavaScript, ovunque all’interno della tua pagina web, ma è normalmente si consiglia di mantenerlo all’interno dei tag <head>. Il tag <script> avvisa il programma browser di iniziare a interpretare tutto il testo tra questi tag come uno script. Apparirà una semplice sintassi del tuo JavaScript come segue.

Per ora iniziamo con un semplice codice, proviamo con un semplice “hello world”, ecco com’è fatto in javascript:

console.log("Hello world!");

Se hai code runner su VsCode puoi cliccare il trangolo per eseguire il codice che hai scritto e su “code” dovrebbe spuntare direttamente Hello Word, se invece ti dà un errore è perché non hai scaricato Node.js, se siete su GNU/Linux vi rimandiamo a questa guida.

Se invece non vuoi ancora scaricare Node.js puoi farlo partire creando un HTML facendo:

<!DOCTYPE HTML>
<html>

<body>

  <p>Prova</p>

  <script src="/home/TheXanada96/javascripting/introduction.js"></script>



</body>

</html>

Clicca inspect e ti ritrovi su questa schermata:

Vai su console:

Oppure.. possiamo usare il comando document.write ad esempio:

I commenti

Come gli altri linguaggi di programmazione anche Javascript ha i commenti e come il linguaggio C condivide la sintassi infatti per fare i commenti dobbiamo fare:

var fumo = 123; //questa è una variabile (esempio di uso dei commenti)
// è usato per fare commenti su una linea

/* ciao a tutti
come vedete posso scrivere su più linee
non è bello?
*/

I commenti è meglio usarli sempre specialmente per ricordarti le funzioni di ogni riga di codice o per rendere più facile la lettura del codice a un’altra persona.

Tipi di valore

Stringhe: var testo = (“ciao mondo”);
Numeri: var numero = 45;
Booleani: var russia = true; / var estonia = false;
Array: var sus = [5, 6, ‘ciao’];
Oggetti: let africa = {eritra:’corno’, soprannome:’uganda’}
Nullo: let obama = null;
Non definito: let sas = undefined;
Non un numero: let ses = NaN;

I valori che Javascript supporta sono i numeri e i numeri e numeri decimali come 35 , 453,21 e 2.99e4 i numeri speciali come infinity e -infinity (infinito e -infinito) le stringhe come 'ciao' o "macchina" vanno bene sia chiudere con l'apostrofo singolo ' che con quello doppio "

Ed ecco qua! possiamo vedere i risultati scritti su Javascript!
Adesso proviamo a dare delle variabili:

var rane = 9; //affido a "rane" un valore input di 9
var carciofi = 5; // affido a "carciofi" un valore input  5
var cirno = rane*carciofi; //il valore "cirno" è ugiale a rane moltiplicato a carciofi
console.log(cirno); // mostra nella console il valore di "cirno"
// Il risultato sarà 45

Su Javascript potete mettere pure valori decimali senza cambiare sintassi.

var rane = 2.4; //affido a "rane" un valore input di 2.4
var carciofi = 6.9; // affido a "carciofi" un valore input 6.9
var cirno = rane*carciofi; //il valore "cirno" è ugiale a rane moltiplicato a carciofi
console.log(cirno); // mostra nella console il valore di "cirno"
// Il risultato sarà 16,56

Ricordiamoci che nella programmazione le operazioni matematiche sono:

OperazioneNomeScopoEsempio
+AddizioneSomma due numeri insieme.5 + 6
sottrazioneSottrae il numero giusto da sinistra.4 – 2
*MoltiplicazioneMoltiplica due numeri insieme. 9 * 3
/DivisioneDivide il numero sinistro per quello destro.15 / 3
%RestoRestituisce il resto rimasto dopo aver diviso il numero a sinistra in un numero di porzioni intere pari al numero a destra.8 % 3 (restituisce 2, poiché tre va in 8 due volte, lasciandone 2 rimasti)
**EsponenteEleva un numero di base alla potenza dell’esponente, ovvero il numero di base moltiplicato per se stesso, esponente per volte.5 ** 2 (restituisce 25, che è lo stesso di 5 * 5)

Abbiamo 3 modi per dichiarare una variabile, e possiamo farlo con Var, Let, Const.

Prima dell’avvento di ES6, regnavano le dichiarazioni var. Tuttavia, ci sono stati problemi associati alle variabili dichiarate con var. Ecco perché era necessario che emergessero nuovi modi di dichiarare le variabili, cerchiamo di capire di più var prima di discutere di questi problemi.

var a = (40 + 10) * 2; // fa prima ciò che si trova dentro le parentesi tonde
var b = 40 + 10 * 2; // senza le parentesi quadre il risultato cambia
var c = "ciao"
var d = " mondo" // ricorda di mettere lo spazio altrimenti viene "ciaomondo"


console.log(a) // --> 100
console.log(b) // --> 60
console.log(c+d) // ciao mondo

Var può fare così tante cose dal momento che la variabile dichiarata in var può avere un ambito globale e locale, oppure potresti aver sentito parlare del termine “scopo della funzione”. Ad esempio:

var benvenuto = 'Benvenuto Scuderi!' // ambito globale
function attività() {
   var attività = 'fai un tuo discorso!'; // ambito locale
   console.log(`Scuderi ${attività}`); 
}
console.log(benvenuto); 
console.log(attività)

Ambito globale significa che una variabile può essere definita all’esterno della funzione poiché è definita all’esterno della funzione, mentre Ambito locale significa che una variabile è definita all’interno della funzione localmente, quindi quella variabile non può essere chiamata al di fuori della funzione.
Quando si esegue il programma con var, inizializzerà il valore di “undefined”. Vorrei che prestaste attenzione a questo dato che sarebbe un caso diverso per let e const. Questo è un modo JS per chiamare una variabile/funzione sopra l’ambito prima che il codice venga eseguito.

Con la comodità di esaminare e aggiornare una variabile var, è facile individuarla quando si scrive un piccolo programma o si sa cosa si vuole ridefinire se necessario. Tuttavia, cosa succede se hai già usato le variabili in altre parti del codice, ma te ne sei dimenticato! Questo creerà molti bug, per noi e probabilmente dovremo passare ore e ore per eseguire il debug di quell’unico *piccolo* errore che commetti SOLO PERCHÉ HAI DIMENTICATO DI AVER GIÀ UTILIZZATO LA VARIABILE!

Ecco perché… let e const sono qui per salvarci la giornata!

Let è più preferibile per la dichiarazione delle variabili. Funziona in modo abbastanza simile a trovare, tranne che let è con scope a blocchi. Un blocco si riferisce a qualsiasi cosa all’interno delle parentesi graffe {}.

function saluti (){
 let saluti = 'ciao Obama' ;
}
saluti ();
console.log(saluti)
//darà un errore

Il motivo è semplice perché, come accennato in precedenza, let è in block scope. Qualsiasi cosa all’interno di {} è considerata un blocco. Possiamo pensare alla situazione come se ci fosse un “Charlie Brown” che va alla scuola A, e c’è un’altra persona chiamata anche lei “Charlie Brown”, ma va alla scuola B. La scuola è di per sé un ambito, e sono due diversi persone con lo stesso nome.

A questo punto, potresti ancora avere dei dubbi su quale sia la differenza tra ambito funzione e ambito blocco. In poche parole, una variabile var può essere definita come scope al di fuori di {} all’interno di una funzione:

function attività(valore) {
   for (var i = 0; i < valore.length; i++) {
     var nome = valore[i]
   }  console.log(i) // 5
   console.log(nome) // Suus
 }valore = ['Saas', 'Sees', 'Siis', 'Soos', 'Suus'];  
attività(valore);

Ma se cambiamo var in let:

function attività(valore) {
   for (let i = 0; i < valore.length; i++) {
     let nome = valore[i]
   }  console.log(i) 
   console.log(nome) 
 }valore = ['Saas', 'Sees', 'Siis', 'Soos', 'Suus'];attività(valore);
 // dà una referenceerror

Poiché i e nome sono definiti all’interno di {} , otterremo ReferenceError quando proveremo a chiamare queste due variabili al di fuori di {} . Questo è un ambito di blocco. Spero che questo elimini un po’ di confusione prima di passare a const!

Poiché la maggior parte delle cose sono trattate in let , esaminerò rapidamente const .

const è abbastanza autoesplicativo. le variabili const mantengono valori costanti. Sebbene la natura di const sia abbastanza diversa da let , entrambi condividono molte somiglianze.

Come le dichiarazioni let, const ha un ambito di blocco. Spero che gli esempi precedenti chiariscano cos’è l’ambito del blocco.

Le dichiarazioni const, come let , non vengono inizializzate quando vengono issate in alto.

const non può essere ridichiarato, proprio come let. Ma la differenza da let is const non può essere aggiornata.

Operatori aritmetici

Nel linguaggio javascript gli operatori aritmetici permettono di effettuare delle operazioni matematiche e aritmetiche basilari. I principali operatori aritmetici sono l’incremento, il decremento e il modulo del resto.

operatore di incremento

Questo operatore consente di incrementare una variabile numerica di una unità. E’ sufficiente aggiungere due più (++) dopo il nome della variabile.

Esempio:

var cirno = 9;
cirno++;
console.log(cirno); 
// =10

La variabile come possiamo notare incrementa di 1

Operatore di decremento

In modo simile ma opposto, posso utilizzare l’operatore per ottenere il decremento di una unità in una variabile numerico. L’operatore di decremento si ottiene scrivendo due segni meno ( — ) dopo la variabile.

var yuyuko = 23; 
yuyuko--; 
console.log(yuyuko);
// =22

La variabile come possiamo notare diminuisce di 1

L’operatore di modulo

Questo operatore aritmetico fornisce il resto di una divisione. Si ottiene scrivendo il simbolo della percentuale % tra il dividendo e il divisore.

var satori = 13%5;
console.log(satori);
// =3

Nello script precedente sto chiedendo all’interprete javascript di dividere il numero 13 per 5 e assegnare il resto della divisione alla variabile numero. Pertanto, dopo l’esecuzione della riga alla variabile numero è assegnato il valore 3, ossia il resto dell’operazione 13 diviso 5. La variabile ‘numero’ assume il valore di modulo (resto) pari a 3 perché il divisore 5 è contenuto nel dividendo 13 soltanto due volte con resto di tre.

Operatori relazionali

Nel linguaggio Javascript le operazioni relazionali (Che rientrano tra quelli booleani) sono operatori che eseguono confronti tra valori.
Gli operatori relazionali in Javascript sono ad esempio:

  • uguale a: ==
  • Minore di: <
  • Maggiore di: >
  • Minore o uguale a: <=
  • Maggiore o uguale a: >=
  • Diverso da: !=
  • Non uguale e non di tipo uguale a: !==
  • Uguale e di tipo uguale a: ===
x == 8
x == 5
x==”5″
false
true
true
x < 8true
x > 8false
x != 8true
x !== 5
x !== “5”
x !== 8
false
true
true
x === 5
x === “5”
true
false
x <= 8true
x >= 8false
x=5

Regole speciali

Le “Regole speciali” sono queste:

  • Se gli operandi sono numeri, si esegue un confronto numerico.
  • Se gli operandi sono stringhe, si confrontano i caratteri corrispondenti nella stringa.
  • Se un operando è un numero, converte l’altro operando in un numero ed eseguire un confronto numerico.
  • Se un operando è un oggetto, chiama valueOf() e usa il suo risultato per eseguire il confronto.
  • Se valueOf() non è disponibile, chiama toString() e usa quel valore.
  • Se un operando è un booleano, lo converte in un numero ed esegui il confronto.

Gli operatori relazionali si esprimono in “if else” eccovi un’esempio:

var chen = 4
if (chen < 7){
    console.log("chen è minore di 7")
}
else
console.log("rip")

Se usiamo il NaN(Not a number) il risultato sarà sempre falso.

Documentazione Javascript

Ogni programmatore che vuole programmare in un determinato linguaggio deve seguire una “documentazione” implementata, sia esterna che interna.

Ogni linguaggio impone le proprie regole di codifica e ovviamente i linguaggi non sono uguali tra di loro.
Nel caso di Javascipt possiamo ad esempio la documentazione dataci da Mozilla

Operatori unari

Gli operatori unari sono codici che indicano un valore di un dato già assegnato, ad esempio typeof() che ci darà il tipo di dato assegnato, lenght, in substring o il ++

esempi:

console.log(typeof "cirno")
// stringa

console.log(typeof cirno)
//non definito

console.log(typeof 6)
// numero

console.log("cirno".length);
// 5

var sus = 9
sus++
console.log(sus);
// 10

var lettere = "ABCDEF"
var sub = lettere.substring(3,5) // parte da 0 se prendiamo da 0,1 il risultato sarà A
console.log(sub) // DE come i livornesi

Array

Gli Array sono una lista a cui possiamo affidargli più valori alla volta, poiché la lunghezza di un array può cambiare in qualsiasi momento e i dati possono essere archiviati in posizioni casuali.

var ar = new Array ("Patchy", 9 , "Remilia" , "Flandre", true)
console.log(ar[2]) // Remilia

I valori iniziano da 0 in questi caso se mettiamo 4 esce il true finale.

var mesi = new Array ("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"); 
var giorno = mesi[(Math.random() * mesi.length) |0] 
console.log(giorno); // esce un mese causale

Funzioni

Le funzioni sono uno degli elementi costitutivi fondamentali in JavaScript. Una funzione in JavaScript è un insieme di istruzioni che esegue un’attività o calcola un valore.
Le funzioni sono utili quando vogliamo utilizzare gli stessi valori più volte.

function saluti (){
    console.log("ciao")

}

saluti(); //ciao
function saluti (personaggio){
    console.log("ciao" + personaggio);

}

saluti(" Reimu");
saluti(" Marisa");
saluti(" Yuyuko");

For

L’istruzione for crea un ciclo che consiste di tre espressioni opzionali, racchiuse tra parentesi e separate da punto e virgola, seguite da un’istruzione da eseguire nel ciclo.

for(var i = 0; i < 9; i++){
    console.log(i);
}

//
0
1
2
3
4
5
6
7
8

In questo caso si inizia con una variabile i di valore 0, se i<9 attraverso i++ dovrà arrivare fino al valore 8.

Vi mostro altri esempi:

for(var i = 0; i <= 50; i += 5){
   console.log(i);
}
// 
0
5
10
15
20
25
30
35
40
45
50
for(var i = 1; i <  30; i += 2){
    console.log(i);
}

//
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29

Il for sarà molto utile per futuri progetti, perché è un comando usato moltissimo.

Operatori logici

Gli operatori logici sono operazioni di tipo booleano che si limitano a distinguere due possibilità “acceso” o “spento” come gli 0 e 1 del codice binario, attraverso l’uso dei vero o falso.
Javascript offre 3 operatori logici not, and e or.
Gli operatori logici servono per ragionare su dati booleani.

L’operatore logico NOT (!) esegue la negazione logica su un’espressione.
I valori booleani vengono semplicemente invertiti: !true = false e !false = true.
I valori non booleani vengono prima convertiti in valori booleani, quindi vengono negati. Ciò significa che un doppio NOT logico (!!) può essere utilizzato per trasmettere qualsiasi valore a un booleano:

!!"Ciao" // true
!!1 // true
!!0 // false


Altri esempi:

DI BASE QUESTI VALORI SONO TRUE
!true         // false
!-1           // false
!"-1"         // false
!42           // false
!"42"         // false
!"pipo"        // false
!"true"       // false
!"false"      // false
!{}           // false
![]           // false
!function(){} // false

BASE QUESTI VALORI SONO FALSE
!false        // true
!null         // true
!undefined    // true
!NaN          // true
!0            // true
!""           // true

L'operatore AND(&&) si tratta di un'operatore binario il cui il risultato è true solo se entrambi sono true, altrimenti è sempre false.

console.log(true && false) //false
console.log(true && true) // true

L'operatore OR || si tratta di un'operatore binario il cui risultato è true quando almeno un true è passato.

console.log(false || true) // true 
console.log(false || false) // false

Nelle operazioni è possibile aritmetica in questo modo
console.log(1 + 2  + 3 && 10 * 10 > 5) // true 

Operatore ternario

L’operatore ternario è diverso da quello binario o unario, e opera su 3 valori e usa come simbolo (?) e (:)

console.log(true ? 1 : 3) // 1
console.log(false ? 1 :3) // 3

Il valore a sinistra del punto di domanda determina la scelta del risultato fra i 2 valori.
Quando il risultato è true , la scelta cade sul valore che sta in mezzo, quando è false il valore del risultato è quello a destra.

Valori indefiniti

I valori indefiniti come null e undefined sono utilizzati per indicare l’assenza di un valore significativo.
Sono valori di per sé, eppure non contengono informazioni o dati, le operazioni non producono alcun valore significativo.
La differenza fra null e undefined è una svista nella progettazione di JavaScript e in generale non ha importanza.

Conversione dei tipi

Javascript accetta di tutto compresi programmi che fanno cose strane.
ad esempio:
console.log(9 * null) // 0
console.log(“7” – 1) // 6
console.log(“5” + 3) // 8
consosle.log(“uno” + 3) // NaN
console.log (false == 0) // true

Quando si applicano operatori di tipo differente, Javascript converte il valore seguendo una serie di regole che non sempre seguono un logica.
Quando si tenta di moltiplicare o dividere una stringa con un numero uscirà sempre NaN.
Se contiamo i valori dello stesso tipo con l’operatore relazionale == succedere questo:
console.log(null == undefined) // true
console.log(null == 0) // false

Corti dei tipi

Gli operatori logici AND(&&) e FOR si comportano in modo differente a seconda del tipo di valore diverso.
Per esempio convertono il valore di sinistra in booleano per stabilire come procedere .
o quello a destra secondo l’operatore e il risultato di quella conversione.
l’operatore FOR restituisce i valori di sinistra quando lo si può convertire in true, diversamente restituisce quelli di destra.
l’Operatore AND ha un comportamento simile ma invertendo le posizioni.

console.log(null || “amongus”) // “amongus”
console.log(“Cirno” || “amongus”) //Cirno

Abbiamo esaminato tutte le basi delle operazioni Javascript, nei prossimi articoli parleremo di operazioni più complesse.

linktree MYCUS
YT

/ 5
Grazie per aver votato!
mycus
Author: mycus