====== Le funzioni ====== [[namespace:javascript|Pagina principale di Javascript]] Una **funzione** è un blocco di codice svolge un compito, una volta definita una funzione può essere chiamata tutte le volte che vogliamo quindi se un particolare compito deve essere ripetuto molte volte è opportuno realizzare una funzione che svolga il compito. Le funzioni si dichiarano utilizzando la parola chiave **function**. * Le funzioni possono avere dei parametri, il numero di parametri è libero. * Le funzioni possono tornare o meno un risultato. function nomeFunzione(parametro1, parametro2) { // Corpo della funzione // Qui vengono definite le operazioni da eseguire } ====I parametri delle funzioni==== In JavaScript, le funzioni possono accettare zero o più parametri. I parametri sono valori che vengono passati alla funzione quando viene chiamata e sono utilizzati all'interno del corpo della funzione per eseguire operazioni specifiche. function saluta() { console.log("Ciao!"); } saluta(); // Output: "Ciao! function saluta(nome) { console.log("Ciao, " + nome + "!"); } saluta("Mario"); // Output: "Ciao, Mario!" saluta("Luigi"); // Output: "Ciao, Luigi!" function somma(a, b) { return a + b; } let risultato = somma(3, 5); console.log(risultato); // Output: 8 function somma(...numeri) { let risultato = 0; for (let numero of numeri) { risultato += numero; } return risultato; //questa funzione torna un risultato} let somma1 = somma(1, 2, 3, 4, 5); console.log(somma1); // Output: 15 let somma2 = somma(1, 2, 3); console.log(somma2); // Output: 6 I parametri delle funzioni forniscono flessibilità e modularità al codice JavaScript, consentendo di creare funzioni che possono essere utilizzate in una vasta gamma di situazioni con dati dinamici. ====La paraola chiave return==== Come abbiamo visto in precedenza le funzioni possono tornare oppure possono non tornare un risultato, il fatto che tornino o non tornino un risultato dipende dalla presenza della parola chiave **return** all'interno del corpo della funzione. La parola chiave return interrompe il esecuzione del codice e ritorna il comando alla riga che la ha chiamata. Quando usiamo una funzione che ritorna un valore la possiamo inserire nella **parte sinistra di un'assegnazione**. function quadrato(num){ return num*num; //il codice qui sotto non viene eseguito } let quattro = quadrato(2); //la funzione è a sx dell'assegnamento ====Altri modi per definire le funzioni==== E' possibile definire le funzione in altri modi: //funzioni come variabili let fun1 = function(par1){ //fai qualcosa con par1 } //arrow function con più di un parametro let myFun = (elem,color) => { elem.style.color = color; } //arrow function con un parametro let myFun2 = elem => { elem.style.color = 'green'; } ====Esercizi sulle funzioni==== * **Calcolatrice semplice**: scrivere una serie di funzioni per eseguire operazioni matematiche di base come somma, sottrazione, moltiplicazione e divisione. * **Pari o dispari**: scrivereuna funzione che accetti un numero come parametro e ci risponda dicendo se il numero è pari o dispari. * **Conteggio delle vocali**:scrivere una funzione che accetti una stringa come parametro e restituisca il numero di vocali (a, e, i, o, u) presenti nella stringa. * **Verifica se palindromo**: scrivere una funzione che accetti una stringa come parametro e restituisca true se la stringa è un palindromo (può essere letta allo stesso modo sia in avanti che all'indietro), altrimenti restituisca false. * **Generatore di password casuale**: sceivere una funzione che generi una password casuale di lunghezza specificata. La password dovrebbe includere sia lettere maiuscole che minuscole, numeri e caratteri speciali. * **Calcolatore di fattoriale**: scrivere una funzione che accetti un numero intero positivo come parametro e restituisca il suo fattoriale. * **Cambio di stringa**: scrivere una funzione che accetti una stringa e restituisca una nuova stringa con le lettere maiuscole trasformate in minuscole e viceversa. * **Conteggio delle parole**: scrivi una funzione che accetti una stringa di testo come parametro e restituisca il numero di parole presenti nella stringa.