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.
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.
💡 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.
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.
💡 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.
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
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.
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.
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
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
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
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.