Corso di Javascript Lesson n° 5

Naviga SWZ: Home Page » Articoli
Articolo del 24 Novembre 06 Autore: Alberto
Categoria: windows
3 - Commento/i sul Forum

Conversione di tipo

Riprendendo il discorso delle variabili, molti linguaggi evoluti (come il C o Visual Basic) prevedono l´utilizzo di variabili solo se queste sono state dichiarate: si dice in questo caso che il linguaggio è tipizzato.

Javascript è un liguaggio tipizzato in modo dinamico ossia è un linguaggio che non prevede obbligatoriamente la dichiarazione delle variabili ed inoltre permette di modificare il tipo di variabile durante l´esecuzione dello script.

Ma vediamo quali sono i tipi di variabili previsti in Javascript:

  1. Numeri interi e in virgola mobile
  2. Valori booleani ossia vero(true) o falso (false)
  3. Stringhe ossia uno o più caratteri di testo
  4. Il valore vuoto rappresentato dalla parola chiave null o undefined quando la variabile non è stata utilizzata o definita
  5. Numeri speciali che sono numeri/non numeri che non hanno un valore identificabile; questi sono:
    1. Infinity e -Infinity ossia un numero più grande del rappresentabile
    2. NaN (Not a Number) quello che risulta dopo la divisione di un numero per zero

Javascript permette di modificare un tipo di variabile in modo dinamico durante l´esecuzione di uno script,  automaticamente senza bisogno dell´intervento del programmatore. Ad esempio



       valore = 25



permette di dichiarare una variabile di tipo numerico ed assegnarle il valore intero 25.

Ma se subito dopo il nostro script prevede l´istruzione



        valore = "prova"



non si produrrà un errore, come avverrebbe in Visual Basic o C, ma Javascript si incaricherà di una conversione automatica di tipo e permetterà di utilizzare la variabile come variabile stringa.

Sicuramente da questo punto di vista Javascript presenta maggior margine di errore specie in fase di debug in quanto occorre molta attenzione nell´utilizzo delle variabili durante la stesura di un programma, ma dobbiamo ricordare che Javascript è un linguaggio interpretato e adatto per piccoli programmi e non applicativi complessi.

Ritornando alla dichiarazione delle variabili vorrei far notare come la dichiarazione



         valore = 25



sia diversa dalla seguente



         valore = "25" 



nella prima infatti si dichiara un numero intero, nella seconda una variabile stringa.

Quando possibile Javascript provvede in automatico nelle conversioni di tipo. In questo frammento di script:



         valore = 25;

         document.write("Il valore è: " + valore);



proddurrà un output sulla pagina come "Il valore è 25";  questo in quanto la funzione document.write gestisce stringhe e pertanto l´interprete provvede in fase di esecuzione a trasformare in automatico la variabile numerica in variabile stringa.



Ma non sempre questa conversione automatica è possibile; ad esempio in quest´altro frammento di script:



         valore = "25";

         risultato = valore / 5;



lo script produrrebbe un´errore. E´ necessario pertanto procedere ad una conversione esplicita mediante due funzioni speciali:

  • parseInt() che converte una stringa in numero intero; la funzione cerca all´interno di una stringa,  a partire dall´inizio e scartando le stringhe, un intero ignorando la virgola e le parti decimali; ad es. parseInt("Tasso 25.30") produrrà come risultato 25
  • parseFloat() che converte una stringa in numero in virgola mobile; la funzione opera come nella precedente, ma conserva virgola e parte decimale;ad es. parseFloat("Tasso 25.30") produrrà come risultato 25.3

Per verificare in qualsiasi momento il tipo di una variabile si utilizza l´operatore typeof che restituirà i valori string (stringa), boolean (logico), number (numero) , function (funzione) , object (oggetto) e undefined (tipo non definito). Ad esempio:



          number = 1                 typeof(number)       produrrà =>numero 

          valore = "Prova"        typeof(valore)         produrrà =>stringa 



[  [1] 2  3     Successiva »   ]

Pagine Totali: 3

La Community di SWZone.it

La community con le risposte che cerchi ! Partecipa é gratis !
Iscrizione ForumIscriviti al Forum

Newsletter

Vuoi ricevere tutti gli aggiornamenti di SWZone direttamente via mail ?
Iscrizione NewsletterIscriviti alla Newsletter