JavaScript

pagine di Roberto Ricci L.S. "A. Righi", Bologna.

Programmazione modulare:

Scrivere per moduli non ha solo il vantaggio di poter "impacchettare" parti del programma che si vuole utilizzate più volte richiamandole brevemente- riassumendo cioè più istruzioni sotto un unico nome - ma soprattutto quello di far ricorso a una metodologia, del "divide et impera" detta in gergo "top-down", che consiste nello scomporre le azioni complesse in parti più facilmente dominabili. Per di più, quando i moduli sono costruiti per essere riutilizzabili anche in altri contesti si può pensare di partire da questi nelle future realizzazioni (metodologia "bottom-up").
Le function di utilità possono essere definite in un file con estensione .js a parte e richiamate semplicemente mediante <script src="nomefile"></script> inserito prima del programma posto tra <script>...</script>

Distinguiamo function, con qualche analogia con le funzioni in matematica, cioè variabili dipendenti, della forma generale:

function <identificatore> (<lista argomenti>){

     blocco istruzioni;

    return <espressione>;
} 
che restituiscono un valore, quello dell'espressione inserita nell'istruzione contraddistinta dalla parola chiave 'return'.

Per utilizzare una tale function occorre semplicemente indicare il nome, all'interno di una espressione, seguito dalla lista delle variabili, tra parentesi, da utilizzare come argomenti.

Possiamo distinguere anche function che, più simili a istruzioni, non restituiscono alcun valore, dette più propriamente procedure, che hanno la forma:

function  <identificatore> (<lista argomenti>){

     blocco istruzioni;
} 
Queste procedure possono essere considerate 'macroistruzioni'. Per utilizzare tali function occorre semplicemente indicare il nome quale riga di programma seguito dalla lista delle variabili, tra parentesi, da utilizzare come argomenti.

Quando una function è utilizzata, il contenuto delle variabili indicate come argomenti è utilizzato per effettuare i calcoli descritti dalla function ma non viene modificato (passaggio per valore).

In un programma occorre distinguere tra l'ambiente globale da quello di ogni singola function.
Le variabili definite all'interno di una function con 'var' si dicono 'locali' e in effetti esistono solo nel corso della sua esecuzione, inesistenti per i moduli esterni alla function. Le variabili non definite esplicitamente con 'var' o definite fuori da qualunque function, cioè nell'ambiente globale, si dicono 'globali' e possono essere utilizzate all'interno di qualunque function, ma non possono ovviamente essere restituite mediante 'return'.
E' consigliabile fare uso di variabili locali per evitare sovrapposizioni non volute.

Esempi

  1. function mcm(numero intero non negativo, numero intero non negativo) minimo comune multiplo
  2. function fatt(numero intero non negativo), fattoriale di un numero, per il calcolo del numero di permutazioni
  3. function disp(numero intero non negativo), per il calcolo del numero di disposizioni
  4. function per individuare il tipo di numero naturale, intero o razionale.
  5. function isPrimo(numero intero non negativo), per scomporre in fattori primi un numero.
  6. function fattori(numero intero non negativo), per verficare se un numero è primo.
  7. determina dei limite destro e sinistro presumibili di una funzione in un punto altra versione.
  8. calcola approssimazione di Stirling ln(n!)@n·ln(n)–n
  9. costruisce una v.a. a distribuzione normale a partire da una distribuzione uniforme in modo da poter poi utilizzare Excel per verificare
  10. crea testo casuale in inglese

Esercizi:

Una function può avere un argomento di tipo non prefissato e perfino un numero di argomenti variabile. Infatti una function è un oggetto che ha in particolare la proprietà
.arguments
un array di lunghezza .arguments.length che contiene i suoi argomenti
.arguments[i]

Esempi

  1. procedura per visualizzare righe
  2. function massimo e minimo di più variabili
  3. function media di un array o di più argomenti

Esercizi:

 

Si possono anche dichiarare

function anonime: function (parametri) {corpo }
o anche
oggetti function: new Function (parametri,corpo )
da assegnare a una variabile o a una proprietà di un oggetto.
Le funzioni sono in realtà variabili di tipo Function.
Il passaggio dei parametri avviene


pagine di Roberto Ricci L.S. "A. Righi", Bologna. Ultima revisione