Temat 03 · 2 × 45 minINF.03
Liczby, operatory i konwersja typów
Prawie każde zadanie praktyczne INF.03 ze skryptem JavaScript coś liczy: koszt paliwa, cenę zabiegów, liczbę puszek farby, ratę kredytu. Dane przychodzą z formularza jako napisy, więc zanim policzysz, musisz je zamienić na liczby – a potem wynik zaokrąglić i wypisać w dokładnie takim formacie, jakiego żąda arkusz. W tej lekcji poznasz operatory arytmetyczne, ich skrócone wersje (ulubiony temat części pisemnej), obiekt Math i trzy sposoby konwersji napisu na liczbę.
Operatory arytmetyczne
| Operator | Działanie | Przykład | Wynik |
|---|---|---|---|
+ | dodawanie (dla napisów: sklejanie!) | 7 + 2 | 9 |
- | odejmowanie | 7 - 2 | 5 |
* | mnożenie | 7 * 2 | 14 |
/ | dzielenie – zawsze z ułamkiem | 7 / 2 | 3.5 |
% | reszta z dzielenia (modulo) | 7 % 2 | 1 |
** | potęgowanie | 2 ** 10 | 1024 |
Kolejność jak w matematyce: najpierw **, potem *, /, %, na końcu + i -. Nawiasy zmieniają kolejność. Gdy masz wątpliwości, dodaj nawiasy – to nic nie kosztuje, a kod łatwiej czytać.
Co wypisze ten kod?
console.log(2 + 3 * 4);
console.log((2 + 3) * 4);
console.log(10 % 3);console.log(2 + 3 * 4); // 14 – mnożenie najpierw
console.log((2 + 3) * 4); // 20
console.log(7 / 2); // 3.5 – nie ma dzielenia całkowitego
console.log(7 % 2); // 1 – reszta
console.log(10 % 5); // 0 – dzieli się bez reszty
console.log(2 ** 3); // 8
console.log(1 / 0); // Infinity – dzielenie przez zero nie rzuca błęduReszta z dzielenia % – do czego służy
Operator % wraca na egzaminie częściej, niż się wydaje. Trzy zastosowania:
- parzystość:
n % 2 === 0oznacza liczbę parzystą (pętla sumująca „liczby parzyste” to typowe pytanie z arkuszy EE.09), - cykliczne liczenie:
(indeks + 1) % 7daje 1, 2, …, 6, 0 – zawijanie galerii zdjęć (lekcja Stan aplikacji), - rozkład na jednostki:
sekundy % 60to sekundy „po minucie”,liczba % 2to ostatnia cyfra binarna (konwersja na system dwójkowy z arkusza ze stycznia 2025, lekcja Pętle).
Dzielenie całkowite
JavaScript nie ma osobnego operatora dzielenia całkowitego (jak // w Pythonie czy div). Używasz Math.floor(a / b) dla liczb dodatnich albo Math.trunc(a / b), które ucina część ułamkową także dla ujemnych.
const sekundy = 3725;
console.log(Math.floor(sekundy / 60), "min", sekundy % 60, "s"); // 62 min 5 s
console.log(Math.floor(sekundy / 3600), "h"); // 1 hOperatory skrócone i inkrementacja
Zapis suma = suma + 5 skraca się do suma += 5. Każdy operator arytmetyczny ma wersję z =:
| Skrót | Znaczy | x po wykonaniu (dla x = 10) |
|---|---|---|
x += 5 | x = x + 5 | 15 |
x -= 5 | x = x - 5 | 5 |
x *= 2 | x = x * 2 | 20 |
x /= 2 | x = x / 2 | 5 |
x %= 3 | x = x % 3 | 1 |
x++ | x = x + 1 (inkrementacja) | 11 |
x-- | x = x - 1 (dekrementacja) | 9 |
let licznik = 0;
licznik++; // 1
licznik += 10; // 11
licznik *= 2; // 22
licznik -= 2; // 20
licznik /= 4; // 5
console.log(licznik);x++ i ++x oba zwiększają x o 1. Różnica pojawia się tylko, gdy użyjesz ich wewnątrz większego wyrażenia: x++ najpierw zwraca starą wartość, potem zwiększa; ++x najpierw zwiększa. W samodzielnej linii (licznik++;) nie ma różnicy – i tak najczęściej będziesz tego używać.
let a = 5;
let b = a++; // b dostaje 5, potem a staje się 6
let c = ++a; // a staje się 7, c dostaje 7
console.log(a, b, c); // 7 5 7Równoważność zapisów – pytanie egzaminacyjne
Część pisemna lubi pytać: „który kod jest funkcjonalnie równoważny?”. Metoda: policz wartość końcową w każdym wariancie. Nie czytaj „na oko”.
Który kod jest równoważny poniższemu?
x = 0;
x += 10;let x = 0; x += 10; console.log("oryginał:", x);
let a = 0; a--; a *= 9; console.log("A:", a);
let b = 0; b++; b = b + 9; console.log("B:", b);
let c = 10; c = c + 10; console.log("C:", c);
let d = 0; d = d + 1; d *= 9; console.log("D:", d);Liczby ułamkowe nie są dokładne
Komputer zapisuje liczby binarnie, a 0.1 w systemie dwójkowym jest ułamkiem okresowym – jak 1/3 w dziesiętnym. Stąd słynny wynik:
Co wypisze console.log(0.1 + 0.2)?
console.log(0.1 + 0.2); // 0.30000000000000004
console.log(0.1 + 0.2 === 0.3); // false!
console.log(19.99 * 3); // 59.97 – tu akurat dobrze
console.log(1.1 * 3); // 3.3000000000000003
console.log((1.1 * 3).toFixed(2)); // "3.30" – napis, zaokrąglony do 2 miejscliczba.toFixed(n) zaokrągla do n miejsc po przecinku i zwraca napis (żeby zachować zera na końcu, np. "5.00"). To idealne do wyświetlania cen. Jeżeli chcesz dalej liczyć, zamień wynik z powrotem na liczbę: Number(cena.toFixed(2)).
Obiekt Math
Math to wbudowany zbiór funkcji matematycznych. Wywołujesz je z kropką: Math.round(2.5).
| Funkcja | Co robi | Przykład | Wynik |
|---|---|---|---|
Math.round(x) | zaokrągla do najbliższej całkowitej (.5 w górę) | Math.round(2.5) | 3 |
Math.ceil(x) | zaokrągla w górę (ang. ceiling – sufit) | Math.ceil(2.1) | 3 |
Math.floor(x) | zaokrągla w dół (ang. floor – podłoga) | Math.floor(2.9) | 2 |
Math.trunc(x) | ucina część ułamkową | Math.trunc(-2.9) | -2 |
Math.abs(x) | wartość bezwzględna | Math.abs(-7) | 7 |
Math.max(a, b, …) | największa z podanych | Math.max(3, 9, 4) | 9 |
Math.min(a, b, …) | najmniejsza z podanych | Math.min(3, 9, 4) | 3 |
Math.sqrt(x) | pierwiastek kwadratowy | Math.sqrt(16) | 4 |
Math.pow(a, b) | potęga (to samo co a ** b) | Math.pow(2, 3) | 8 |
Math.random() | pseudolosowa liczba z przedziału [0, 1) | Math.random() | np. 0.7312… |
Math.PI | stała π | Math.PI | 3.14159… |
Co wypisze ten kod?
console.log(Math.round(2.5), Math.ceil(2.1), Math.floor(2.9));console.log(Math.round(2.5), Math.round(2.4), Math.round(-2.5)); // 3 2 -2
console.log(Math.ceil(2.1), Math.ceil(2.0), Math.ceil(-2.1)); // 3 2 -2
console.log(Math.floor(2.9), Math.floor(-2.1)); // 2 -3
console.log(Math.trunc(-2.9), Math.abs(-7)); // -2 7
console.log(Math.max(3, 9, 4), Math.min(3, 9, 4)); // 9 3„Zaokrąglona w górę” to zawsze Math.ceil
Arkusz ze stycznia 2023 (INF.03-01-23.01) kazał obliczyć liczbę puszek farby: powierzchnia podzielona przez 4 m², „zaokrąglona w górę do liczby naturalnej”. Dla 37 m² potrzebujesz 9,25 puszki, czyli 10 – Math.round dałoby 9 i kryterium przepada. Słowa-klucze w arkuszu: „w górę”, „co najmniej” → ceil; „w dół”, „pełnych” → floor; „do najbliższej” → round.
const powierzchnia = 37;
const puszki = Math.ceil(powierzchnia / 4);
console.log("Liczba potrzebnych puszek:", puszki); // 10Losowanie
Math.random() zwraca liczbę od 0 (włącznie) do 1 (wyłącznie), np. 0.4213. Żeby dostać liczbę całkowitą z zakresu, mnożysz, ucinasz w dół i przesuwasz. Zapamiętaj wzór – wraca w zadaniach z losowym tekstem czatu (czerwiec 2024) i w grach:
// liczba całkowita od 0 do 8 (9 możliwości – jak indeksy tablicy 9 napisów)
const indeks = Math.floor(Math.random() * 9);
console.log("Indeks:", indeks);
// rzut kostką: od 1 do 6
const kostka = Math.floor(Math.random() * 6) + 1;
console.log("Kostka:", kostka);
// ogólnie: od min do max włącznie
const min = 10, max = 20;
const los = Math.floor(Math.random() * (max - min + 1)) + min;
console.log("Od 10 do 20:", los);Funkcja Math.random() w języku JavaScript
Konwersja napisu na liczbę
Z pola formularza, z prompt() i z atrybutów HTML dostajesz napisy. "120" to nie 120. Masz trzy narzędzia:
| Funkcja | Działanie | "42" | "42.5" | "42px" | "3,5" | "" | "abc" |
|---|---|---|---|---|---|---|---|
Number(x) | cały napis musi być liczbą | 42 | 42.5 | NaN | NaN | 0 | NaN |
parseInt(x) | czyta cyfry od początku, ucina ułamek | 42 | 42 | 42 | 3 | NaN | NaN |
parseFloat(x) | czyta liczbę od początku, z ułamkiem | 42 | 42.5 | 42 | 3 | NaN | NaN |
console.log(Number("42"), Number("42.5"), Number("42px"), Number(""));
console.log(parseInt("42.9"), parseInt("42px"), parseInt("abc"));
console.log(parseFloat("42.9"), parseFloat("19.99 zł"), parseFloat("3,5"));
console.log(+"7", typeof +"7"); // skrót: jednoargumentowy plus = Number()Który wybrać?
parseFloat– domyślnie w zadaniach egzaminacyjnych: toleruje spacje i śmieci na końcu, zachowuje ułamek.parseFloat("19.99")→19.99.parseInt– gdy wartość ma być całkowita (liczba sztuk, rat). Uwaga:parseInt("3.9")daje3bez zaokrąglania.Number– najściślejszy; pusty napis daje0, a cokolwiek nieliczbowego –NaN. Dobry do walidacji.- Dla pól
type="number"itype="range"istnieje też właściwośćpole.valueAsNumber, która od razu zwraca liczbę (lubNaNdla pustego pola) – lekcja Odczyt kontrolek formularza.
Dlaczego "5" + 3 to "53", a "5" - 3 to 2
Operator + ma dwa znaczenia. Jeśli którakolwiek strona jest napisem, + skleja (a liczbę zamienia na napis). Pozostałe operatory (-, *, /, %) działają tylko na liczbach, więc same zamieniają napisy na liczby. To najczęstsza przyczyna złych wyników na egzaminie: dwie wartości z formularza dodane bez konwersji dają sklejony napis.
Co wypisze ten kod?
console.log("5" + 3);
console.log("5" - 3);
console.log("5" * "2");Przewidź wynik każdej linii, zapisz, a dopiero potem uruchom:
console.log("5" + 3); // "53" – sklejenie
console.log("5" - 3); // 2 – konwersja na liczbę
console.log("5" * "2"); // 10
console.log("10" / "4"); // 2.5
console.log(true + 1); // 2 – true to 1 w arytmetyce
console.log(7 % 2); // 1
console.log(1 + 2 + "3"); // "33" – od lewej: 3, potem 3 + "3"
console.log("1" + 2 + 3); // "123" – od lewej: "12", potem "123"Ostatnie dwie linie pokazują regułę: wyrażenie jest liczone od lewej do prawej, a + zmienia znaczenie w momencie, gdy napotka napis.
NaN – nieudane obliczenie
NaN („Not a Number”) to wartość typu number, która oznacza „to nie jest poprawna liczba”. Powstaje, gdy konwersja się nie uda (Number("abc")) albo działanie nie ma sensu (0 / 0, "abc" * 2). Dwie własności, które zaskakują:
NaNzaraża: każde działanie zNaNdajeNaN–NaN + 5toNaN,NaNnie jest równe niczemu, nawet sobie:NaN === NaNtofalse. Do sprawdzania służyNumber.isNaN(x)(ścisłe) albo starszeisNaN(x), które najpierw konwertuje argument.
const zle = Number("abc");
console.log(zle, typeof zle); // NaN number
console.log(zle + 5); // NaN – zaraża dalsze obliczenia
console.log(zle === NaN); // false – tak NIE sprawdzaj
console.log(Number.isNaN(zle)); // true – tak sprawdzaj
console.log(isNaN("abc"), isNaN("12")); // true false – isNaN najpierw konwertujeW zadaniu praktycznym NaN w wyniku („Koszt: NaN zł”) oznacza zwykle puste pole albo literówkę w id. Walidacja „Wprowadź poprawne dane.” (styczeń 2025) to właśnie sprawdzenie isNaN lub pustego pola – lekcja Walidacja formularzy.
Liczba na napis
Czasem potrzebujesz odwrotnej konwersji – np. żeby policzyć cyfry albo sformatować wynik:
const cena = 1234.5;
console.log(String(cena), typeof String(cena)); // "1234.5" string
console.log(cena.toString()); // to samo
console.log(cena + ""); // skrót: sklejenie z pustym napisem
console.log(cena.toFixed(2)); // "1234.50" – zawsze 2 miejsca
console.log((10).toString(2)); // "1010" – zapis dwójkowy
console.log(parseInt("1010", 2)); // 10 – z dwójkowego na dziesiętnyNa egzaminie
Ściąga
| Składnia | Co robi | Przykład → wynik |
|---|---|---|
+ - * / | arytmetyka; / zawsze z ułamkiem | 7 / 2 → 3.5 |
% | reszta z dzielenia | 7 % 2 → 1 |
** | potęga | 2 ** 10 → 1024 |
x += n, x -= n, x *= n, x /= n | x = x + n itd. | x = 10; x += 5 → 15 |
x++, x-- | zwiększ / zmniejsz o 1 | x = 10; x++ → 11 |
Number(s) | cały napis → liczba, inaczej NaN; "" → 0 | Number("42.5") → 42.5 |
parseInt(s) | cyfry od początku, bez ułamka | parseInt("42.9px") → 42 |
parseFloat(s) | liczba od początku, z ułamkiem | parseFloat("19.99 zł") → 19.99 |
Math.round(x) | do najbliższej całkowitej | Math.round(2.5) → 3 |
Math.ceil(x) | w górę („zaokrąglona do góry”) | Math.ceil(9.25) → 10 |
Math.floor(x) | w dół (dzielenie całkowite: Math.floor(a / b)) | Math.floor(2.9) → 2 |
Math.random() | losowa z [0, 1) | Math.floor(Math.random() * 6) + 1 → 1–6 |
Math.max(a, b), Math.min(a, b) | większa / mniejsza | Math.max(3, 9) → 9 |
Math.abs(x), Math.sqrt(x) | wartość bezwzględna, pierwiastek | Math.sqrt(16) → 4 |
x.toFixed(n) | napis z n miejscami po kropce | (2.5).toFixed(2) → "2.50" |
String(x), x.toString(), x + "" | liczba → napis | String(12) → "12" |
NaN, Number.isNaN(x) | nieudane obliczenie i jego test | Number("abc") → NaN |
"5" + 3 vs "5" - 3 | + z napisem skleja, reszta liczy | "53" vs 2 |
Zadania
Przewidź dziesięć wyników
Zapisz na kartce wynik każdej linii i jego typ. Dopiero potem uruchom. Za każdą pomyłkę znajdź regułę w tej lekcji.
console.log(10 / 4);
console.log(10 % 4);
console.log(2 ** 4);
console.log("10" + 4);
console.log("10" - 4);
console.log("10" * "2");
console.log(true + true);
console.log(Number("12abc"));
console.log(parseInt("12abc"));
console.log(1 + "1" - 1);Pokaż rozwiązanie
console.log(10 / 4); // 2.5 (number)
console.log(10 % 4); // 2 (number)
console.log(2 ** 4); // 16 (number)
console.log("10" + 4); // "104" (string) – sklejenie
console.log("10" - 4); // 6 (number) – minus konwertuje
console.log("10" * "2"); // 20 (number)
console.log(true + true); // 2 (number) – true liczy się jako 1
console.log(Number("12abc")); // NaN (number) – Number wymaga całego napisu
console.log(parseInt("12abc")); // 12 (number) – parseInt czyta od początku
console.log(1 + "1" - 1); // 10 (number) – "11" po sklejeniu, potem 11 - 1Konwerter walut
Napisz skrypt, który dla kwoty w złotych (na razie stała, np. 250) i kursu euro (np. 4.32) wypisze w konsoli: 250 zł = 57.87 EUR. Wynik ma być zaokrąglony do dwóch miejsc po przecinku. Następnie zasymuluj dane z formularza: zamień obie stałe na napisy ("250", "4.32") i spraw, by wynik był nadal poprawny. Sprawdź dla drugiego zestawu danych: "1000" i "4.5".
Pokaż rozwiązanie
// Zestaw 1 – napisy jak z pola formularza
const kwotaTekst = "250";
const kursTekst = "4.32";
const kwotaPln = parseFloat(kwotaTekst); // konwersja OD RAZU przy odczycie
const kurs = parseFloat(kursTekst);
const kwotaEur = kwotaPln / kurs; // 57.87037…
console.log(kwotaPln + " zł = " + kwotaEur.toFixed(2) + " EUR");
// Zestaw 2
const kwotaPln2 = parseFloat("1000");
const kurs2 = parseFloat("4.5");
console.log(kwotaPln2 + " zł = " + (kwotaPln2 / kurs2).toFixed(2) + " EUR");Gdybyś pominął parseFloat, dzielenie "250" / "4.32" i tak by zadziałało (operator / konwertuje), ale każde dodawanie (np. kwota + prowizja) już nie – dlatego konwertuj zawsze, nie licz na to, że operator „sam sobie poradzi”.
Kostka i losowy indeks
- Wylosuj wynik rzutu dwiema kostkami (każda 1–6) i wypisz:
Kostki: 3 i 5, suma: 8. - Masz tablicę 9 odpowiedzi czatu (indeksy 0–8). Wylosuj indeks i wypisz go. Uruchom kilka razy i upewnij się, że nigdy nie pojawia się 9 ani liczba ujemna.
- Wylosuj temperaturę z zakresu od −10 do 30 stopni włącznie.
Dla każdego punktu zapisz w komentarzu, dlaczego mnożnik i przesunięcie są takie, a nie inne.
Pokaż rozwiązanie
// 1. kostka: random * 6 daje [0, 6), floor daje 0–5, +1 daje 1–6
const kostka1 = Math.floor(Math.random() * 6) + 1;
const kostka2 = Math.floor(Math.random() * 6) + 1;
console.log("Kostki: " + kostka1 + " i " + kostka2 + ", suma: " + (kostka1 + kostka2));
// 2. indeks 0–8: 9 możliwości, więc mnożnik 9, bez przesunięcia
const indeksOdpowiedzi = Math.floor(Math.random() * 9);
console.log("Indeks odpowiedzi:", indeksOdpowiedzi);
// 3. od -10 do 30 włącznie: 41 możliwości (30 - (-10) + 1), przesunięcie o -10
const temperatura = Math.floor(Math.random() * 41) - 10;
console.log("Temperatura:", temperatura);Nawiasy wokół kostka1 + kostka2 w pierwszym console.log są konieczne: bez nich + sklejałby od lewej i wyszłoby "…suma: 35" zamiast 8.
Kalkulator puszek farby
Fragment zadania w stylu arkusza ze stycznia 2023 (INF.03-01-23.01), bez formularza. Wartość z pola jest symulowana napisem. Napisz skrypt, który:
- przechowuje powierzchnię do pomalowania jako napis
"37"(tak przyjdzie zpole.value), - zamienia ją na liczbę,
- oblicza liczbę puszek, wiedząc, że jedna puszka (1 l) wystarcza na 4 m², a liczba puszek ma być całkowita, zaokrąglona w górę,
- wypisuje w konsoli dokładnie:
Liczba potrzebnych puszek: 10, - działa poprawnie także dla drugiego zestawu:
"40"→10oraz"41"→11.
Kryteria oceny (zero-jedynkowe, w stylu zasad oceniania CKE):
- Skrypt w języku JavaScript, co najmniej jedna poprawna składniowo instrukcja.
- Wartość powierzchni jest konwertowana na liczbę (
parseFloat,parseIntlubNumber). - Wykonywane jest dzielenie powierzchni przez 4.
- Wynik jest liczbą całkowitą zawsze zaokrągloną w górę – sprawdzane dla danych, które nie dzielą się przez 4.
- Tekst wyniku ma dokładnie postać
Liczba potrzebnych puszek: <wynik>(dwukropek, spacja). - Znaczące nazwy zmiennych.
Pokaż rozwiązanie
// Kalkulator puszek farby – 1 puszka = 4 m², zaokrąglenie w górę
const powierzchniaTekst = "37"; // tak przyjdzie z pola formularza
const powierzchnia = parseFloat(powierzchniaTekst); // kryterium 2
const metrowNaPuszke = 4;
const liczbaPuszek = Math.ceil(powierzchnia / metrowNaPuszke); // kryteria 3 i 4
console.log("Liczba potrzebnych puszek: " + liczbaPuszek); // kryterium 5
// Test na dwóch kolejnych zestawach danych – tak robi egzaminator
console.log("Liczba potrzebnych puszek: " + Math.ceil(parseFloat("40") / 4)); // 10
console.log("Liczba potrzebnych puszek: " + Math.ceil(parseFloat("41") / 4)); // 11Najczęstsze błędy w tym zadaniu: Math.round (dla 37 daje 9 – kryterium 4 przepada), brak konwersji (dla dzielenia akurat nie szkodzi, ale egzaminator widzi brak w kodzie), tekst Liczba puszek: zamiast pełnego brzmienia z arkusza (kryterium 5).
Sekundy na godziny, minuty i sekundy
Dla liczby sekund (np. 3725) wypisz: 1 h 2 min 5 s. Użyj wyłącznie %, / i Math.floor. Następnie sprawdź dla 59, 3600 i 86399. Dodatkowo: wypisz tę samą wartość w formacie 01:02:05 – minuty i sekundy zawsze dwucyfrowe (podpowiedź: dopisz "0", gdy liczba jest mniejsza niż 10, albo użyj padStart, który poznasz w następnej lekcji).
Pokaż rozwiązanie
const sekundyRazem = 3725;
const godziny = Math.floor(sekundyRazem / 3600); // 1
const minuty = Math.floor((sekundyRazem % 3600) / 60); // reszta po godzinach, w minutach: 2
const sekundy = sekundyRazem % 60; // 5
console.log(godziny + " h " + minuty + " min " + sekundy + " s");
// Format 01:02:05 – String(n).padStart(2, "0") dopisuje zero z przodu do długości 2
const hh = String(godziny).padStart(2, "0");
const mm = String(minuty).padStart(2, "0");
const ss = String(sekundy).padStart(2, "0");
console.log(hh + ":" + mm + ":" + ss);
// Testy
console.log(Math.floor(59 / 3600), Math.floor((59 % 3600) / 60), 59 % 60); // 0 0 59
console.log(Math.floor(3600 / 3600), Math.floor((3600 % 3600) / 60), 3600 % 60); // 1 0 0
console.log(Math.floor(86399 / 3600), Math.floor((86399 % 3600) / 60), 86399 % 60); // 23 59 59Kluczowy krok to sekundyRazem % 3600 – reszta po odjęciu pełnych godzin, z której dopiero liczysz minuty. Bez tego Math.floor(3725 / 60) dałoby 62 minuty. Ten sam schemat „podziel całkowicie, weź resztę” to konwersja na system dwójkowy w lekcji Pętle.
Test powtórkowy
Test powtórkowy
Format jak w części pisemnej INF.03: 4 odpowiedzi, 1 poprawna. Kod w dialekcie egzaminacyjnym (var).
Jaką wartość będzie miała zmienna x po wykonaniu kodu?
var x = 7;
x += 3;
x *= 2;Który zapis jest równoważny instrukcji zmienna1 -= 1;?
Co wypisze poniższy kod?
var a = "4";
var b = 2;
document.write(a + b);Które wywołanie zwróci liczbę 12 z napisu '12.75 zł'?
Fragment zadania: „liczba puszek ma być liczbą całkowitą, zaokrągloną w górę”. Której funkcji należy użyć?
Co wypisze console.log(0.1 + 0.2 === 0.3)?
Jaki typ i wartość ma x po wykonaniu var x = Number('abc');?
Instrukcja Math.floor(Math.random() * 10) zwraca
Co wypisze poniższy kod?
var cena = 2.5;
console.log(cena.toFixed(2) + 1);Pętla sprawdza warunek liczba % 2 == 0. Które liczby go spełniają?