Kurzusok
/
JavaScript
JavaScript
/
Feladatok
/
Lucian ínycsiklandó lasagnéja
Lucian ínycsiklandó lasagnéja

Lucian ínycsiklandó lasagnéja

Tanulófeladat

Bevezetés

A JavaScript dinamikus nyelv, amely támogatja az objektumorientált, az imperatív és a deklaratív (például funkcionális programozási) stílusokat.

Változók

A JavaScriptben néhány alapvető módon rendelhetsz értéket egy névhez: változókkal vagy konstansokkal. Az Exercism-ön a változókat mindig camelCase írásmóddal írjuk, a konstansokat pedig SCREAMING_SNAKE_CASE stílusban. Nincs hivatalos útmutató, amit követni kellene, a különböző cégeknek és szervezeteknek pedig különböző stílusútmutatóik vannak. Nyugodtan írd a változókat, ahogy szeretnéd. Ha úgy írod őket, ahogy a feladatok elő vannak készítve, az az előnye, hogy a webes felületen és a legtöbb IDE-ben másképp lesznek kiemelve.

A JavaScriptben a változókat a const, a let vagy a var kulcsszóval definiálhatod.

Ha let-et vagy var-t használsz, egy változó az élettartama során különböző értékekre hivatkozhat. Például a myFirstVariable az = értékadó operátorral sokszor definiálható és újradefiniálható:

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

A let-tel és a var-ral ellentétben a const-tal definiált változóknak csak egyszer adhatsz értéket. Így definiálunk konstansokat a JavaScriptben.

const MY_FIRST_CONSTANT = 10;

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

💡 Egy későbbi tanulófeladatban megvizsgáljuk és elmagyarázzuk a különbséget a konstans értékadás, a konstans kötés és a konstans érték között.

Függvénydeklarációk

A JavaScriptben a funkcionalitás egységeit függvények zárják magukba, és ha összetartoznak, általában ugyanabban a fájlban csoportosítjuk őket. Ezeknek a függvényeknek paramétereik vannak (így argumentumokat fogadhatnak), és a return kulcsszóval visszaadhatnak egy értéket. A függvényeket a () szintaxissal hívod meg.

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

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

Ebben a példában a függvény neve add. Két paramétere van: num1 és num2. Visszaad egy értéket: a num1 + num2 kifejezés eredményét.

Ezután az add függvényt két argumentummal hívjuk meg: 1 és 3. A függvény eredménye, a visszaadott érték pedig 4.

Note

💡 A JavaScriptben sok különböző módon deklarálhatsz függvényt. Néhány ilyen más mód másképp néz ki, mint a function kulcsszó használata. A kurzus igyekszik fokozatosan bevezetni őket, de ha már ismered őket, nyugodtan használhatod bármelyiket. A legtöbb esetben nem jobb vagy rosszabb az egyik vagy a másik használata.

Elérhetővé tétel más fájlok számára

Ahhoz, hogy egy function, egy konstans vagy egy változó más fájlokban is elérhető legyen, az export kulcsszóval exportálnod kell őket. Egy másik fájl ezután az import kulcsszóval importálhatja ezeket. Ezt nevezik modulrendszernek is.

Erre remek példa, ahogy az összes teszt működik. Minden feladathoz tartozik legalább egy fájl, például a lasagna.js, amely az implementációt tartalmazza. Az implementációt export-áljuk a fájlból, így az egy másik fájlban importálhatóvá válik. Emellett legalább egy másik fájl is van, például a lasagna.spec.js, amely a teszteket tartalmazza. Ez a fájl import-álja a nyilvános (azaz exportált) entitásokat, hogy tesztelje az implementációt:

// 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

Utasítások

Lucian barátnője épp hazafelé tart, és Lucian még nem főzte meg a közös évfordulós vacsorájukat!

Ebben a feladatban kódot írsz majd, hogy segíts Luciannak elkészíteni egy ínycsiklandó lasagnét a kedvenc szakácskönyvéből.

Négy részfeladat vár rád, amelyek a lasagna elkészítésével töltött időhöz kapcsolódnak.

1. Add meg a sütőben eltöltendő várható időt percekben

Definiáld az EXPECTED_MINUTES_IN_OVEN konstanst, amely megadja, hány percig kell a lasagnának a sütőben lennie. Exportálni kell. A szakácskönyv szerint a várható sütési idő 40 perc.

2. Számítsd ki a hátralévő sütési időt percekben

Valósítsd meg a remainingMinutesInOven függvényt, amely paraméterként megkapja, hány percet volt eddig a lasagna a sütőben, és visszaadja, hány percig kell még a sütőben maradnia, az előző részfeladat várható sütési ideje alapján.

remainingMinutesInOven(30);
// => 10

3. Számítsd ki az előkészítési időt percekben

Valósítsd meg a preparationTimeInMinutes függvényt, amely paraméterként megkapja a lasagnára rakott rétegek számát, és visszaadja, hány percet töltöttél a lasagna előkészítésével, feltéve, hogy minden réteg elkészítése 2 percet vesz igénybe.

preparationTimeInMinutes(2);
// => 4

4. Számítsd ki a teljes munkával töltött időt percekben

Valósítsd meg a totalTimeInMinutes függvényt, amely két paramétert kap: a numberOfLayers paraméter a lasagnára rakott rétegek száma, az actualMinutesInOven paraméter pedig az, hány percet volt a lasagna a sütőben. A függvény adja vissza, hogy összesen hány percet dolgoztál a lasagna elkészítésén, ami az előkészítési idő és a lasagna által a sütőben eddig eltöltött idő összege.

totalTimeInMinutes(3, 20);
// => 26
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
JavaScript Exercism

Készen állsz elkezdeni a(z) Lucian ínycsiklandó lasagnéja feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) JavaScript nyelvet 37 fogalom159 feladat segítségével, valódi emberi mentorálással, mindez ingyen.