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