JavaScript
Lezione 5
Tipizzazione ed operazioni tra tipi diversi
Istruzioni di input
JS è debolmente tipizzato
• JavaScript è un linguaggio debolmente tipizzato o
tipizzato dinamicamente: quando si dichiara una variabile
non è necessario specificarne il tipo di dato dei suoi
valori, ma il tipo viene automaticamente rilevato dal
linguaggio dall’assegnazione alla variabile del valore
• Ad esempio:
var x = 10;
var y = "ciao";
var z = true;
x = "Mario";
//
//
//
//
x è di tipo numerico
y è di tipo stringa
z è di tipo booleano
ora x è di tipo stringa
Notare che la variabile x ha cambiato tipo: JavaScript lo
permette.
Conversione del tipo di dati
• Quando un tipo viene utilizzato in un contesto che
richiede un tipo diverso, JavaScript tenta
automaticamente di convertire il valore nel tipo
necessario
• Esempio
alert() richiede come argomento il tipo stringa, ma con
le seguenti istruzioni non si ottiene errore, perché JS
converte il numero ed il booleano in stringa
alert(23)
alert(true)
// converte 23 in "23"
// converte true in "true"
Operazioni tra tipi diversi
• Se si opera tra tipi diversi, JavaScript cerca di convertire i
due operandi in un tipo comune su cui operare per
ottenere il risultato.
• Nel caso contrario assegna un valore predefinito
Esempio
<script>
var x=23;
var y="ciao";
z = x + y; // converte il numero 23 in stringa
alert(z); // scrive "23ciao"
z = x * y; // questa volta scrive NaN (Not a Number)
alert(z);
</script>
Altre conversioni
• Le possibilità da provare operando con variabili di tipo
diverso sono molte ed è utili fare le varie prove (cercare
di vedere se si riesce a prevedere il risultato)
• Altri esempi
<script>
var x=23;
var y="42";
z = x + y;
alert(z); // scrive "2342" (converte il numero in stringa)
z = x * y;
alert(z); // scrive 966 (converte la stringa in numero)
</script>
Istruzioni di input
• Ogni linguaggio di programmazione ha delle istruzioni
che fanno in modo che l'utente, su richiesta del
programma, introduce dei dati che il programma elabora
• Questi dati vengono detti dati di input e vengono inseriti
mediante istruzioni di input.
• Normalmente i dati di input vengono scritti come testo
in appositi elementi della finestra del programma o in
finestre popup.
Finestra di prompt
Per fare in modo che JavaScript visualizzi una finestra che
richieda all'utente di scrivere del testo da inviare al
programma si utilizza l'istruzione
prompt(messaggio,default)
dove
messaggio è la stringa di testo (non HTML) contenente un
messaggio che di solito spiega all'utente cosa deve
introdurre
default è la stringa di testo (non HTML) contenente quello
che viene visualizzato inizialmente nella riga di input; se si
desidera che la riga sia vuota, si scrive la stringa vuota ""
Quando l'utente ha scritto i dati, preme OK.
Memorizzare i dati di input
• Quello che l'utente scrive nella finestra di prompt viene
restituita al programma come dato di tipo testo.
• Per utilizzare questo dato occorre quindi memorizzarla in
una variabile, mediante l'operatore di assegnazione
• Esempio
x=prompt("Introduci cognome e nome","");
alert("Ciao " +x+ ". Benvenuto nella pagina");
Convertire in numero il dato di prompt
• Se si desidera convertire il dato inserito con prompt da
stringa a numero, si può utilizzarlo in una operazione
che lo converta in numero e ne lasci invariato il valore
Ad esempio, moltiplicarlo per 1 o sottrargli 0
• Esempio
x=prompt("Introduci un numero","");
x = x * 1;
La variabile x a destra è una stringa (quella scritta nella
finestra di prompt); quella a sinistra è un numero
Finestra di conferma
• Per fare in modo che JavaScript visualizzi una finestra con
una domanda del tipo sì/no si utilizza l'istruzione
confirm(domanda)
• dove
domanda è una stringa di testo (non HTML) e va messa
quindi tra apici o tra virgolette.
• La finestra di confirm viene usata quando si richiede
all'utente una decisione, che l'utente prende cliccando sul
pulsante OK o sul pulsante Annulla
Esercitazioni
Il link apre un documento di word nel quale sono presenti
alcuni script sulle conversioni di tipo e sulle finestre di
input
Gli script vanno provati e compresi, aiutandosi con le
spiegazioni e con i commenti messi tra le istruzioni
Esercitazioni conversioni di tipo
Esercitazione finestre di input