1 – 2 – 3 Intro , costanti e variabili

ES6 è l’abbreviazione di ECMAScript  2015, il linguaggio di programmazione client side, divenuto ormai uno standard. La tabella aggiornata sulla compatibilità delle versioni la si può trovare qui . Visto che riscriverò JavaScript almeno 8.727 volte lo abbrevierò in js .

storia

1993 NCSA fece uscire il browser Mosaic, collaborando con la Netscape uscì nel 1994 Netscape C e Netscape Navigator. In quegli anni l’ingegnere Brendan Eich ideò un linguaggio simile al LISP , Scheme

1995 In questo anno entra in modo forte il linguaggio di programmazione Java. Venne così chiesto all’ingegnere di progettare un linguaggio Simile al Java che chiamò provvisoriamente Mocha e lo progettò in 10 giorni. Il nuovo linguaggio non potendosi chiamare Java per motivi legali si chiamò JavaScript. Le differenza tra i 2 linguaggi sono comunque notevoli.
Vediamo il primo comando:

<script>
alert("Hello world! Salve mondo! o: Faghy is on the World !!" );
</script>

L’utilizzo di js è dato dall’apertura del tag script e dalla sua chiusura </script>

alert è un comando, o meglio un metodo che apre un box contenente il messaggio passato nelle parentesi tonde. È il primo comando che sempre viene presentato in js.

costanti

Vediamo ora il seguente mini format HTML

<input type="number" id="eta" placeholder="Inserire l'età">
<input type="button" id="btn_OK" value="OK">

Per il momento cerchiamo di capire  dove andare a memorizzare i dati inseriti dall’utente in js.

In generale i dati possono essere memorizzati in costanti o variabili .

Le costanti sono contenitori di valori immutabili nel tempo e non possono ricevere il valore dall’esterno (da un campo, da un file, da un database… ). Sono introdotte con la keyword const seguita dall’identificatore (il nome della costante), l’operatore di assegnamento ( = ) e il suo valore

const numero = 3;

Le costanti non possono variare il loro valore nel tempo. Con 1 solo comando posso dichiararne diverse separandole da virgola

const   numero = 3,
        pi_greco=2.14, //ok
        a1=8, //ok
        _a2 = 9,    //ok
        $a3 ; // NO

L’ultima costante $a3 non è accettata perché manca l’operatore di assegnamento.

Notare come si fanno i commenti su una riga in js con il doppio slash ( // ).

I commenti su più righe iniziano con /* e finiscono con */

Ecco un esempio di nomi non accettati:

const  1A = 1, //non pu ò iniziare con un numero
        A-1 = 3 , //non è ammesso il segno -
        pi greco = 3.14; //non sono ammeassi spazi

Una convenzione molto usata quando ci sono più parole è mettere la prima parola in minuscolo e l’iniziale delle altre parole in maiuscolo, chiamato stile CamelCase .

const mesiAnno = 12 ,
      giorniDellaSettimanaLavorativa = 5 ,
      piGreco = 3.14;

L’uso delle costanti semplifica la leggibilità del codice, lo rendono più sicuro, magari involontariamente cambio il valore di mesi in un anno (non ha senso), e di migliore manutenzione.

Il valore è immutabile, quindi il seguente codice è errato

const nome = 'pippo';
nome = 'pluto'; // non posso cambiare il valore della costante nome

Posso dichiarare una costante, anche con lo stesso nome, all’interno di un blocco di codice che si delimita con le parentesi graffe e la sua visibilità funziona solo all’interno di quel blocco

const nome = 'pippo';
 {
 const nome = 'pluto'; 
 }

Se dichiarassi lo stesso nome dentro il blocco come una variabile con var avrei un errore, perchè var ha la visibilità globale, cosa che non accadrebbe con let.

le costanti o variabili dichiarate all’interno di un blocco sia con const che let una volta usciti dal blocco non hanno più visibilità e non esistono più.

Variabili

A differenza delle costanti, le variabili possono variare il loro valore. Si dichiarano con la keyword var oppure la più recente let, introdotta con ECMAScript 6, da preferirsi perché garantisce visibilità sia a livello di funzione che di blocco (variabili esterne, affronteremo l’argomento più avanti )

var totale_spese = 0;

Le regole di dichiarazione e nomenclatura sono identiche a quelle delle costanti.

Anche se non obbligatorio è buona norma inizializzare le variabili usando la keyword var e il suo valore, pensate a quanto segue.

var totale_spese;

/* Un bel po' di codice che ci fa dimenticare l'assenza di un valore /*
totale_spese= totale_spese + 100 ;

Otterrei un errore perché la variabile totale_spese non è definita (undefined)

In alcune situazioni può trovare utilità l’uso della variabile globale console con il suo metodo log per effettuare il debug degli errori

console.log(totale_spese);