You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/*Scrivere una funzione sum() che ritorni la somma di un numero arbitrario di valori passati in argomento.*/// Scrivi il codice quisum(1,3);//4sum(10,20,5);//35sum(2,5,80,1,10,12);//110
/* Rispondi alle seguenti domande: 1. Perché nessun errore viene generato DOPO la linea 14? 2. Perché DOPO la linea 19 TypeError viene generato?cambia una linea di codice per far scomparire l'errore.Non cambiare le linee 14, 19.*/constarr=[1,2];arr.push(3);console.log(arr);// [1, 2, 3]arr=[1,2,3,4];// PRIMA: Uncaught TypeError:// Assignment to constant variable.// DOPO: nessun erroreconsole.log(arr);// [1, 2, 3, 4]
/*cambia codice per generare l'ouput indicato.*/vari=10;for(vari=0;i<5;i++){// some stuffconsole.log(i);}console.log(i);//output:// PRIMA: 5// DOPO: 10
vari=10;for(leti=0;i<5;i++){// some stuffconsole.log(i);}console.log(i);// PRIMA: 5// DOPO: 10
4 Hoisting
/*cambia codice sistemare l'errore DOPO la linea 15.L'errore DOPO la linea 20 dovrebbe persistere.*/vara=5,b=10;if(b>a){c=a+b+c;letc=2;console.log(c);// PRIMA: Uncaught ReferenceError: c è not defined// DOPO: 17}console.log(c);// Uncaught ReferenceError: c è not defined
vara=5,b=10;if(b>a){letc=2;c=a+b+c;console.log(c);// PRIMA: Uncaught ReferenceError: c è not defined// DOPO: 17}console.log(c);// Uncaught ReferenceError: c è not defined
5 Ternary Operator
/*cambia i contenuti della funzione tipoNumerico usando l'operatore ternario.*/functiontipoNumerico(a){if(typeofa==="number"){return"E' un numero";}else{return"Non è un numero";}}console.log(tipoNumerico(10));// E' un numeroconsole.log(tipoNumerico("Buongiorno a tutti"));// Non è un numeroconsole.log(tipoNumerico(true));// Non è un numero
functiontipoNumerico(a){returntypeofa==="number" ? "E' un numero" : "Non è un numero";}console.log(tipoNumerico(10));// E' un numeroconsole.log(tipoNumerico("Buongiorno a tutti"));// Non è un numeroconsole.log(tipoNumerico(true));// Non è un numero
6 Arrow Functions
/*Usa le arrow functions invece delle funzioni tradizionali,ove possibile.*/functionprodotto(a,b){returna*b;}setTimeout(function(){console.log(prodotto(5,10));},1000);// 50
/*Rispondi alle seguenti domande:1. Perché alla linea 14 non possiamo usare le seguenti istruzioni:prodotto = prodotto || 2;Setta il valore di default del parametro prodottonella funzione moltiplicaPer().*/functionmoltiplicaPer(a,prodotto){prodotto=prodotto!==undefined ? prodotto : 2;console.log(a*prodotto);}moltiplicaPer(2);// 4moltiplicaPer(2,undefined);// 4moltiplicaPer(2,0);// 0moltiplicaPer(5,10);// 50
8 Controllare la presenza dei parametri in una funzione
/*Lancia un Error quando la funzione quadrato() viene chiamata senza argomenti.Scrivi una nuovafinzione e usala come parametro di default.*/functionquadrato(a){console.log(a*a);}quadrato(10);// 100quadrato();// PRIMA: NaN// DOPO: Uncaught Error: Function quadrato requires// an argument!
functionargomentoMancante(){thrownewError("Function quadrato requires an argument!");}functionquadrato(a=argomentoMancante()){console.log(a*a);}quadrato(10);// 100quadrato();// PRIMA: NaN// DOPO: Uncaught Error: Function quadrato requires// an argument!
9 Object Destructuring
/*Dichiara la funzione prodotto() che dovrà moltiplicare i valori di x, y, z dell'oggetto passato in argomento.*/varobj={x: 5,y: 20,z: 3};// Scrivi qui la funzione prodotto()console.log(prodotto(obj));// 300
varobj={x: 5,y: 20,z: 3};functionprodotto({ x, y, z }){returnx*y*z;}console.log(prodotto(obj));// 300
10 Destructuring e Rest Operator
/*Assegna i valori alle variabili a, b, c usando la destrutturazione e il parametro rest.*/vara,b,c;vararr=[1,2,3,4,5,6,7];// Scrivi il codice quiconsole.log(a);// 1console.log(b);// 2console.log(c);// [3, 4, 5, 6, 7]
/*Scrivi una funzione carInfo() che ritorni informazioni su ciascuna auto.L'auto è considerata economica se il suo prezzo è <= 20000L'auto è considerata costosa se il suo prezzo è > 20000*/varcars=[{brand: "Honda",prezzo: 13000},{brand: "Rolls-Royce",prezzo: 120000}];// Scrivi carInfo() quicars.forEach(car=>console.log(carInfo(car)));/* Il prezzo della mia Honda è 13000€ ed è un'auto economica. *//* Il prezzo della mia Rolls-Royceè 120000€ ed è un'auto costosa. */
varcars=[{brand: "Honda",prezzo: 13000},{brand: "Rolls-Royce",prezzo: 120000}];functioncarInfo(car){return`Prezzo of my new ${car.brand} \è ${car.prezzo}$ and it è \${car.prezzo<=20000 ? "cheap" : "expensive"} car.`;}cars.forEach(car=>console.log(carInfo(car)));/* Il prezzo della mia Honda è 13000€ ed è un'auto economica. *//* Il prezzo della mia Rolls-Royceè 120000€ ed è un'auto costosa. */
14 Object Destructuring
/*Scrivi la funzione shortPerson() che servirà a destrutturare l'oggetto persona.Esempio:{n: "Mauro", c: "Italia", a: 30, p: 100}Se l'oggetto in ingresso non ha la prop numeroPost riceve come valore di default 0.*/varperson1={nome: "Mauro",info: {paese: "Italia",eta: 30},numeroPost: 100};varperson2={nome: "Paolo",info: {paese: "Italia",eta: 25}};// Write function hereconsole.log(shortPerson(person1));// {n: "Mauro", c: "Italia", a: 30, p: 100}console.log(shortPerson(person2));// {n: "Paolo", c: "Italia", a: 25, p: 0}
/*Conta il numero di vocali nella stringaVocali minuscole - a, e, i, o, u*/varconteggioVocali=0;varvocali=["a","e","i","o","u"];varstr="Lorem ipsum dolor sit amet, Lorem";// Scrivi il codice quiconsole.log(conteggioVocali);// 8
varconteggioVocali=0;varvocali=["a","e","i","o","u"];varstr="Lorem ipsum dolor sit amet, Lorem";// for (let i = 0; i < str.length; i++) {// if (vocali.includes(str[i])) conteggioVocali++;// }for(letsofstr){if(vocali.includes(s))conteggioVocali++;// ES2016 (ES7) syntax}console.log(conteggioVocali);// 8
16 Scambia i valori di due variabili
/*Scambia i valori a e b, senza utilizzare una variabile temporanea di appoggio.*/vara="primo";varb="secondo";// Scrivi il codice quiconsole.log(a,b);// secondo primo
vara="primo";varb="secondo";[b,a]=[a,b];console.log(a,b);// secondo primo
17 IIFE Immediately Invoked Function Expression
/*Completa la IIFE che esporrà i seguenti metodi: saluta() - Data una stringa in argomento, saluta con quell'argomento cambiaSaluto() - Cambia la stringa di saluto*/// var saluti = (Scrivi la IIFE qui);console.log(saluti.saluta("Giovanni"));// Ciao, mi chiamo Giovanniconsole.log(saluti.cambiaSaluto("Buongiorno da )
);// undefinedconsole.log(saluti.saluta("Francesca"));// Buongiorno da Francesca
varsaluti=(()=>{varstringaSaluto="Ciao, mi chiamo";functionsaluta(nome){return`${stringaSaluto}${nome}`;}functioncambiaSaluto(nuovoSaluto){stringaSaluto=nuovoSaluto;}return{
saluta,
cambiaSaluto
};})();console.log(saluti.saluta("Giovanni"));// Ciao, mi chiamo Giovanniconsole.log(saluti.cambiaSaluto("Buongiorno da )
);// undefinedconsole.log(saluti.saluta("Francesca"));// Buongiorno da Francesca
18 Classi ES6
/*Riscrivi il codice seguente usando le classi ES6*/varFrutto=function(title,prezzo){this.title=title;this.prezzo=prezzo;};Frutto.prototype.priceInfo=function(){return`Prezzo di un/una ${this.title} è \${this.prezzo}$`;};varmela=newFrutto("Mela",2);console.log(mela.priceInfo());// Prezzo di un/una Mela è 2$vararancia=newFrutto("Arancia",3);console.log(arancia.priceInfo());// Prezzo di un/una Arancia è 3$
classFrutto{constructor(title,prezzo){this.title=title;this.prezzo=prezzo;}priceInfo(){return`Prezzo di un/una ${this.title} è \${this.prezzo}$`;}}varmela=newFrutto("Mela",2);console.log(mela.priceInfo());// Prezzo di un/una Mela è 2$vararancia=newFrutto("Arancia",3);console.log(arancia.priceInfo());// Prezzo di un/una Arancia è 3$
19 Iterare sulle proprietà di un Object
/*Scrivi una funzione sumObjectValues() che sommi tutti i valori delle proprietà numeriche dell'oggetto.*/varnumeri={a: 10,b: 20,c: "string",d: 12};// Scrivi il codice quiconsole.log(sumObjectValues(numeri));//42
varnumeri={a: 10,b: 20,c: "string",d: 12};// Scrivi il codice quifunctionsumObjectValues(obj){lettotal=0;for(letkinobj){if(typeofobj[k]==="number"&&obj.hasOwnProperty(k))total+=obj[k];}returntotal;}console.log(sumObjectValues(numeri));//42
20 somma dei positivi e quella dei negativi
/*Scrivi una funzione sommaPiuMeno() che prenda in argomento un array di valori numerici e ritorni la somma dei positivi e quella dei negativi.dovrebbe ritornare un oggetto tipo{ piu: 74, // somma dei positivi meno: -54 // somma dei negativi}*/varnumeri=[10,-12,30,-1,-8,0,14,-33,20];// Scrivi il codice quiconsole.log(sommaPiuMeno(numeri));// {piu: 74, meno: -54}