JavaScript variabili e costanti

JavaScript variabili e costanti

In JavaScript, le variabili e le costanti svolgono un ruolo fondamentale nella memorizzazione e manipolazione dei dati. Introdurremo anche il concetto di costante nel contesto di JavaScript, evidenziando l’uso della parola chiave const.

Dichiarazione in JavaScript di Variabili e Costanti

Nel contesto di JavaScript, è comune utilizzare la parola chiave const per dichiarare costanti e let per dichiarare variabili. La principale differenza tra const e let è che le costanti, una volta assegnato loro un valore, non possono essere riassegnate, mentre le variabili possono.

// Esempio di costante con const
const pigreco = 3.14;

// Esempio di variabile con let
let raggio = 4, area;
area = pigreco * raggio * raggio;
document.write(`L'area del cerchio di raggio ${raggio} è: ${area}`);

In questo esempio, pigreco è una costante e raggio è una variabile. La variabile area viene utilizzata per memorizzare il risultato di un calcolo.

Costanti in JavaScript

In JavaScript, la parola chiave const è utilizzata per dichiarare costanti. Tuttavia, a differenza di altri linguaggi, il significato di “costante” in JavaScript è più flessibile. Pur restando immutabile nel senso che non può essere riassegnata, una costante può ancora contenere un oggetto mutabile, come un array o un oggetto.

const listaNumeri = [1, 2, 3, 4, 5];
listaNumeri.push(6); // Consentito, poiché l'array è mutabile

Facciamo dunque un esempio Interattivo:

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>JavaScript Variabili e Costanti</title>
  <script>
    function calcola() {
      const pigreco = 3.14;
      let raggio = document.getElementById("raggio").value;
      let area = pigreco * raggio * raggio;
      document.getElementById("risultato").innerHTML = `L'area del cerchio di raggio ${raggio} è: ${area}`;
    }
  </script>
</head>
<body>
  <h1>Esempio di variabili e costanti in JavaScript</h1>
  <label for="raggio">Inserisci il raggio:</label>
  <input type="text" id="raggio">
  <input type="button" id="calcola" value="Calcola" onclick="calcola()">
  <p id="risultato"></p>
</body>
</html>

In questo esempio interattivo, gli utenti possono inserire il valore del raggio e calcolare l’area del cerchio. Il risultato è poi visualizzato dinamicamente sulla pagina.

Ulteriori esempi: calcolo della media

// Secondo Esempio: Calcolo della Media var a = 5, b = 6; let somma = a + b; let media = somma / 2; document.write(`La media dei numeri ${a} e ${b} è ${media}`);
Corso su JavaScript

Uso di variabili e costanti in JavaScript

Cerchiamo di capire cosa utilizzare. La scelta tra var, let e const in JavaScript dipende dallo scopo d’uso e dalla natura della variabile che si sta dichiarando.

var:

  • Scopo di Funzione: Le variabili dichiarate con var hanno uno scope di funzione. Ciò significa che sono visibili all’interno della funzione in cui sono dichiarate e possono essere accessibili anche prima della loro dichiarazione (a differenza di let e const).
  • Hoisting: Le dichiarazioni di var vengono “sollevate” (hoisting) durante la fase di esecuzione. Questo significa che la variabile può essere utilizzata prima della sua dichiarazione.
  • Riassegnazione: Le variabili var possono essere riassegnate.
var x = 10;
if (true) {
  var x = 20; //la stessa variabile x è riassegnata
}
console.log(x); // Output: 20

let:

  • Scopo di Blocco: Le variabili dichiarate con let hanno uno scope di blocco. Ciò significa che sono visibili solo all’interno del blocco in cui sono dichiarate.
  • Hoisting: Anche se let è soggetto a hoisting, non può essere utilizzato prima della sua dichiarazione. Viene “sollevato” ma rimane non inizializzato fino alla dichiarazione effettiva.
  • Riassegnazione: Le variabili let possono essere riassegnate.
let y = 10;
if (true) {
  let y = 20; //nuova variabile creata all'interno del blocco
}
console.log(y); // Output: 10

const:

  • Scopo di Blocco: Le variabili dichiarate con const hanno uno scope di blocco.
  • Assegnazione Iniziale Obbligatoria: Una variabile const deve essere assegnata con un valore durante la sua dichiarazione e non può essere riassegnata successivamente.
  • Immunità alla Riassegnazione: Le variabili const non possono essere riassegnate dopo la loro inizializzazione. Tuttavia, questo non implica immutabilità per oggetti e array dichiarati con const. Gli elementi interni di tali strutture dati possono comunque essere modificati.
const z = 10;
// z = 20; // Errore! Non può riassegnare una variabile const dopo l'inizializzazione

Quando Usare let, var o const

  • Utilizza const quando il valore della variabile rimarrà invariato durante l’esecuzione del tuo programma. È una buona pratica utilizzare const per dichiarare costanti.
  • Utilizza let quando si sa che il valore della variabile cambierà durante l’esecuzione e si ha bisogno di uno scope di blocco.
  • Usa var solo se si sta lavorando con codice più vecchio o se si hanno delle ragioni specifiche per farlo, poiché let e const sono opzioni più recenti e spesso più sicure.

In generale, è dunque preferibile utilizzare const per dichiarare variabili quando possibile, poiché promuove l’immobilità del valore, rendendo il codice più chiaro e meno soggetto a errori. Utilizziamo invece let quando la riassegnazione è necessaria, e cerchiamo di evitare var a meno che tu non stiamo lavorando con codice più vecchio (legacy) che non supporta let e const.

Convenzioni di Nomenclatura

Seguiamo le convenzioni di nomenclatura JavaScript, che è il camelCase per variabili e costanti.

Tipizzazione Dinamica delle variabili

Parliamo anche di tipizzazione dinamica. Infatti in JavaScript, le variabili sono dinamicamente tipizzate, il che significa che il loro tipo può cambiare durante l’esecuzione del programma.

JavaScript inoltre esegue automaticamente la conversione di tipo quando è necessario durante le operazioni.

Facciamo degli esempi:

let numero = 10;
let testo = "5";
let somma = numero + testo; // La conversione automatica di tipo trasforma il numero in una stringa
console.log(somma); // Output: "105"

In questa lezione abbiamo parlato di variabili e costanti in JavaScript, nella prossima lezione parleremo di istruzioni condizionali e faremo degli esempi.

Alcuni link utili

Indice tutorial JavaScript

Introduzione al tutorial JavaScript

Il linguaggio JavaScript

Come utilizzare JavaScript alert

Come utilizzare JavaScript confirm

Utilizzare JavaScript prompt

Proxy HTTP

Proxy HTTP

Un proxy HTTP, definito anche proxy server, è un server utilizzato per lo scambio di messaggi tra un client ed un server, come una sorta di intermediario.

I client richiedono al proxy server un servizio come ad esempio una pagina web, un file audio/video o qualsiasi altra risorsa che risiede su altro server.

L’obiettivo finale è dunque quello di filtrare il traffico web. Molte aziende si avvalgono dei proxy per effettuare un controllo sulla rete.

Perché utilizzare questo intermediario?

Motivi per utilizzare un proxy HTTP

Ecco, di seguito, alcuni motivi per utilizzare un proxy HTTP:

Privacy: Mantenere l’anonimato durante una connessione, come nel sistema Tor (software che consente di navigare in Internet nell’anonimato, dunque protegge la privacy degli utenti che navigano nella rete), dove i dati non transitano dal client al server direttamente ma passano dai server Tor. Ma il proxy, non cripta la connessione come fa invece la VPN, quindi si occupa solo di fornire un indirizzo IP diverso. Il server web che riceve una richiesta da parte di un client, vede l’indirizzo IP del proxy e non quello del client.

Caching: Un proxy può essere utilizzato per velocizzare le richieste di servizi da parte dei client. Infatti i caching proxy conservano, per un certo tempo, i risultati delle richieste da parte di un client. Questo rende più veloce i tempi di risposta delle stesse risorse da parte di altri client. Ecco perché molte aziende utilizzano un caching proxy. Nel momento in cui ci sono state delle modifiche alle pagine web, allora il server proxy richiede nuovamente la pagina al server web.

Monitoraggio: un proxy server consente di monitorare le pagine web visitate, consentendo di effettuare statistiche, ma violando la privacy degli utenti. Ecco perché ci sono delle norme per ogni sito web che avvisano gli utenti dell’utilizzo di mezzi per monitorare il traffico web.

Amministrazione: grazie ad un proxy server si possono stabilire delle regole, come ad esempio bloccare facilmente alcuni siti. Dunque si determina facilmente quali richieste inoltrare e quali rifiutare in base a determinate regole.

Può succedere però che un proxy invii al server web anche l’indirizzo IP del client, tutto dipende dalla configurazione del proxy. In tal caso si dice che il server web si fida del proxy server sulle informazioni che sta fornendo, perché non ha modo di verificare.

Tipi di proxy

NOA (Non Anonimus Proxy): sono i proxy più utilizzati dagli ISP, per rendere gli accessi ai siti web più veloci e dunque risparmiare la banda di connessione. Sono proxy non anonimi infatti mostrano l’indirizzo IP reale del richiedente. Il server web li riconosce facilmente.

ANM (Anonimus Proxy): sono i proxy anonimi che non trasmettono l’indirizzo IP del client, ma trasmettono l’indirizzo IP del proxy. Questo tipo di proxy non nasconde il fatto che la comunicazione sta facendo uso di un proxy.

HIA (High Anonimus Proxy): sono i proxy altamente anonimi che nascondono l’IP del client e sono difficili da riconoscere da parte del server web.

Proxy distorcenti: offrono una maggiore protezione perché trasmettono un IP casuale, quindi il server web vede le richieste provenienti da indirizzi IP diversi.

Alcuni link utili

Indice argomenti reti

1 – Introduzione alle reti

2 – Reti Pan, Lan, Man, Wan e Gan

3 – Tecnologia Bluetooth

4 – Tecnologia Wi-Fi

5 – Tecnologia WiMAX

6 – Topologia delle reti

7 – Hub e Switch

8 – Bridge e Router

9 – Commutazione di pacchetto e di circuito

10 – Mac Address

11 – Trasmissione via cavo: UTP, FTP e STP