Lecții din modul (3/4)
Numere și matematică
În JavaScript există un singur tip numeric: number. Ambele numere întregi
iar zecimale (virgula flotantă) trăiesc acolo. Fără int / float separat
ca în alte limbi.
typeof 42; // 'number'
typeof 3.14; // 'number'
typeof -0.001; // 'number'
typeof Infinity; // 'number' ← Infinity is a special number
typeof NaN; // 'number' ← even "Not a Number" is a number (!)Obiectul global Math
Math nu este o funcție: este un obiect cu metode utile și
constante. Nu îl instanțiezi, îl folosești direct:
Math.min(3, 1, 7); // 1
Math.max(3, 1, 7); // 7
Math.abs(-5); // 5
Math.round(4.5); // 5
Math.floor(4.9); // 4 (always rounds down)
Math.ceil(4.1); // 5 (always rounds up)
Math.sqrt(16); // 4
Math.pow(2, 10); // 1024 (equivalent to 2 ** 10)
Math.PI; // 3.141592653589793Numere aleatorii
Math.random() returnează o zecimală între 0 (inclus) și 1 (exclus).
Pentru a obține un număr întreg într-un interval, utilizați o formulă mică:
// Random integer between 0 and 9
Math.floor(Math.random() * 10);
// Random integer between 1 and 6 (a six-sided die)
Math.floor(Math.random() * 6) + 1;Durerile zecimalelor (virgula flotantă)
JS folosește reprezentarea IEEE-754 pe 64 de biți, partajată cu aproape toți limbi. Este o reprezentare binară, deci unele zecimale nu pot fi reprezentat exact:
0.1 + 0.2; // 0.30000000000000004 (!)
0.1 + 0.2 === 0.3; // falseSoluție standard: rotunjește cu toFixed(n) (care returnează un șir) sau
utilizați numere întregi în cenți/mii atunci când lucrați cu bani:
(0.1 + 0.2).toFixed(2); // '0.30' (string)
Number((0.1 + 0.2).toFixed(2)); // 0.3 (number)Încearcă
Calculați aria unui cerc cu raza `r = 5` rotunjită la două zecimale, ca un `număr`. Pentru `r=5` este de așteptat 78,54.
Afișează indiciu
Math.PI pentru pi, ** pentru exponentiare; .toFixed(2) pentru a rotunji, Number(...) pentru a converti înapoi la un număr.
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Având în vedere trei numere 12, 7, 23, returnați ca ultimă expresie diferența dintre maxim și min (adică 16).
Afișează indiciu
Math.max și Math.min acceptă mai multe argumente separate prin virgulă.
Soluție disponibilă după 3 încercări