Track
/
JavaScript
JavaScript
/
Esercizi
/
Le deliziose lasagne di Lucian
Le deliziose lasagne di Lucian

Le deliziose lasagne di Lucian

Esercizio di apprendimento

Introduzione

JavaScript è un linguaggio dinamico, che supporta gli stili orientato agli oggetti, imperativo e dichiarativo (ad esempio la programmazione funzionale).

Variabili

In JavaScript ci sono alcuni modi principali per assegnare dei valori a dei nomi: usando variabili o costanti. Su Exercism, le variabili si scrivono sempre in camelCase; le costanti si scrivono in SCREAMING_SNAKE_CASE. Non esiste una guida ufficiale da seguire, e aziende e organizzazioni diverse hanno guide di stile diverse. Sentiti libero di scrivere le variabili come preferisci. Il vantaggio di scriverle nel modo in cui sono preparati gli esercizi è che verranno evidenziate in modo diverso nell'interfaccia web e nella maggior parte degli IDE.

In JavaScript, le variabili si possono definire usando la parola chiave const, let o var.

Una variabile può fare riferimento a valori diversi nel corso della sua esistenza quando si usa let o var. Ad esempio, myFirstVariable si può definire e ridefinire più volte usando l'operatore di assegnazione =:

let myFirstVariable = 1;
myFirstVariable = 'Some string';
myFirstVariable = new SomeComplexClass();

A differenza di let e var, le variabili definite con const si possono assegnare una sola volta. Questo si usa per definire le costanti in JavaScript.

const MY_FIRST_CONSTANT = 10;

// Can not be re-assigned.
MY_FIRST_CONSTANT = 20;
// => TypeError: Assignment to constant variable.
Note

💡 In un esercizio del concetto successivo vengono esplorate e spiegate la differenza tra l'assegnazione di una costante, il binding di una costante e il valore di una costante.

Dichiarazioni di funzioni

In JavaScript, le unità di funzionalità sono incapsulate nelle funzioni; di solito, le funzioni che stanno insieme vengono raggruppate nello stesso file. Queste funzioni hanno dei parametri (così possono ricevere degli argomenti) e possono restituire un valore usando la parola chiave return. Le funzioni si chiamano usando la sintassi ().

function add(num1, num2) {
  return num1 + num2;
}

add(1, 3);
// => 4

In questo esempio, il nome della funzione è add. Ha due parametri, num1 e num2. Restituisce un valore: il risultato dell'espressione num1 + num2

Poi la funzione add viene chiamata con due argomenti: 1 e 3. Il risultato della funzione, il valore restituito, è 4.

Note

💡 In JavaScript ci sono molti modi diversi per dichiarare una funzione. Alcuni di questi altri modi sono diversi dall'usare la parola chiave function. Il track cerca di introdurli gradualmente, ma se li conosci già, sentiti libero di usarne uno qualsiasi. Nella maggior parte dei casi, usare l'uno o l'altro non è meglio né peggio.

Esporre ad altri file

Per rendere una function, una costante o una variabile disponibile in altri file, queste devono essere esportate usando la parola chiave export. Un altro file può quindi importarle usando la parola chiave import. Questo è anche noto come sistema di moduli.

Un ottimo esempio è come funzionano tutti i test. Ogni esercizio ha almeno un file, ad esempio lasagna.js, che contiene l'implementazione. L'implementazione viene esportata dal file, rendendola disponibile per l'importazione in un altro file. Inoltre c'è almeno un altro file, ad esempio lasagna.spec.js, che contiene i test. Questo file importa le entità pubbliche (cioè quelle exportate) per poter testare l'implementazione:

// file.js
export const MY_VALUE = 10;

export function add(num1, num2) {
  return num1 + num2;
}

// file.spec.js
import { MY_VALUE, add } from './file';

add(MY_VALUE, 5);
// => 15

Istruzioni

La fidanzata di Lucian sta tornando a casa e lui non ha ancora preparato la cena per il loro anniversario!

In questo esercizio, scriverai del codice per aiutare Lucian a cucinare una squisita lasagna tratta dal suo ricettario preferito.

Hai quattro attività legate al tempo necessario per cucinare la lasagna.

1. Definire in minuti il tempo previsto in forno

Definisci la costante EXPECTED_MINUTES_IN_OVEN, che rappresenta per quanti minuti la lasagna deve stare in forno. Deve essere esportata. Secondo il libro di ricette, il tempo previsto in forno è di 40 minuti.

2. Calcolare in minuti il tempo rimanente in forno

Implementa la funzione remainingMinutesInOven, che prende come parametro i minuti effettivi che la lasagna ha già passato in forno e restituisce quanti minuti deve ancora restare in forno, in base al tempo previsto in forno in minuti dell'attività precedente.

remainingMinutesInOven(30);
// => 10

3. Calcolare in minuti il tempo di preparazione

Implementa la funzione preparationTimeInMinutes, che prende come parametro il numero di strati che hai aggiunto alla lasagna e restituisce quanti minuti hai impiegato a prepararla, supponendo che ogni strato richieda 2 minuti di preparazione.

preparationTimeInMinutes(2);
// => 4

4. Calcolare in minuti il tempo di lavoro totale

Implementa la funzione totalTimeInMinutes, che prende due parametri: il parametro numberOfLayers è il numero di strati che hai aggiunto alla lasagna, mentre il parametro actualMinutesInOven è il numero di minuti che la lasagna ha passato in forno. La funzione deve restituire quanti minuti in totale hai dedicato a cucinare la lasagna, cioè la somma del tempo di preparazione in minuti e del tempo in minuti che la lasagna ha passato in forno fino a quel momento.

totalTimeInMinutes(3, 20);
// => 26
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
JavaScript Exercism

Vuoi iniziare Le deliziose lasagne di Lucian?

Iscriviti a Exercism per imparare e padroneggiare JavaScript con 37 concetti159 esercizi e il mentoring di persone reali, tutto gratis.