Home » Articole » Articole » Calculatoare » Programare » JavaScript » Valori, numere și operatori în programarea cu JavaScript

Valori, numere și operatori în programarea cu JavaScript

postat în: JavaScript 0

”Sub suprafața mașinii, programul se mișcă. Fără efort, se extinde și se contractă. În mare armonie, electronii se împrăștie și se regrupează. Formele de pe monitor nu sunt decât ondulații pe apă. Esența rămâne invizibilă dedesubt.”
Maestrul Yuan-Ma, Cartea Programării

În lumea computerelor, există doar date. Puteți citi date, modifica date, puteți crea date noi, dar ceea ce nu este date nu poate fi menționat. Toate aceste date sunt stocate ca secvențe lungi de biți și, prin urmare, sunt fundamental asemănătoare.

Biții sunt orice fel de lucruri cu două valori, de obicei descrise ca zerouri și unu-uri. În interiorul computerului, acestea iau forme precum o sarcină electrică ridicată sau scăzută, un semnal puternic sau slab sau o pată lucioasă sau plictisitoare pe suprafața unui CD. Orice bucată de informație discretă poate fi redusă la o secvență de zerouri și unu-uri și astfel reprezentată în biți.

De exemplu, putem exprima numărul 13 în biți. Funcționează la fel ca un număr zecimal, dar în loc de 10 cifre diferite, aveți doar 2, iar greutatea fiecăruia crește cu un factor de 2 de la dreapta la stânga. Iată biții care alcătuiesc numărul 13, cu greutățile cifrelor afișate sub ei:

   0   0   0   0   1   1   0   1
 128  64  32  16   8   4   2   1

Deci, acesta este numărul binar 00001101. Cifrele sale diferite de zero reprezintă 8, 4 și 1 și se adună rezultând 13.

Valori

Imaginați-vă o mare de biți – un ocean din ei. Un computer modern tipic are peste 30 de miliarde de biți în stocarea de date volatilă (memorie de lucru). Stocarea nevolatilă (hard disk-ul sau echivalentul) tinde să aibă încă câteva ordine de mărime mai mult.

Pentru a putea lucra cu astfel de cantități de biți fără a ne pierde, trebuie să le separăm în bucăți care reprezintă bucăți de informații. Într-un mediu JavaScript, acele bucăți sunt numite valori. Deși toate valorile sunt făcute din biți, ele joacă roluri diferite. Fiecare valoare are un tip care îi determină rolul. Unele valori sunt numere, unele valori sunt fragmente de text, unele valori sunt funcții și așa mai departe.

Pentru a crea o valoare, trebuie doar să-i invocați numele. Acest lucru este convenabil. Nu trebuie să aduni materiale de construcție pentru valorile tale sau să plătești pentru ele. Doar suni pentru unul și gata, îl ai. Ele nu sunt cu adevărat create din aer subțire, desigur. Fiecare valoare trebuie să fie stocată undeva, iar dacă doriți să folosiți o cantitate gigantică din ele în același timp, este posibil să rămâneți fără memorie. Din fericire, aceasta este o problemă numai dacă aveți nevoie de toate simultan. De îndată ce nu mai folosiți o valoare, aceasta se va disipa, lăsând în urmă bucățile sale pentru a fi reciclate ca material de construcție pentru următoarea generație de valori.

Acest capitol prezintă elementele atomice ale programelor JavaScript, adică tipurile de valori simple și operatorii care pot acționa asupra unor astfel de valori.

Numere

Valorile de tip număr sunt, fără a fi surprinzător, valori numerice. Într-un program JavaScript, acestea sunt scrise după cum urmează:

13

Folosiți asta într-un program și va face ca modelul de biți pentru numărul 13 să apară în memoria computerului.

JavaScript folosește un număr fix de biți, 64 dintre ei, pentru a stoca o singură valoare numerică. Există doar atâtea modele pe care le puteți face cu 64 de biți, ceea ce înseamnă că numărul de numere diferite care pot fi reprezentate este limitat. Cu N cifre zecimale, puteți reprezenta 10N  . În mod similar, având în vedere 64 de cifre binare, puteți reprezenta 264 de numere diferite, adică aproximativ 18 chintilioane (un 18 cu 18 zerouri după el). Asta e mult.

Memoria computerului era mult mai mică, iar oamenii aveau tendința de a folosi grupuri de 8 sau 16 biți pentru a-și reprezenta numerele. Era ușor să depășești din greșeală numere atât de mici – să ajungi la un număr care nu se încadra în numărul dat de biți. Astăzi, chiar și computerele care intră în buzunar au multă memorie, așa că sunteți liber să utilizați bucăți de 64 de biți și trebuie să vă faceți griji pentru depășire numai atunci când aveți de-a face cu numere cu adevărat astronomice.

Totuși, nu toate numerele întregi mai mici de 18 chintilioane se potrivesc într-un număr JavaScript. Acei biți stochează și numere negative, așa că un bit indică semnul numărului. O problemă mai mare este că și numerele neîntregi trebuie să fie reprezentate. Pentru a face acest lucru, unii dintre biți sunt utilizați pentru a stoca poziția punctului zecimal. Numărul întreg maxim real care poate fi stocat este mai mult în intervalul de 9 cvadrilioane (15 zerouri) – ceea ce este încă plăcut de mare.

Numerele fracționale se scriu folosind un punct.

9.81

Pentru numere foarte mari sau foarte mici, puteți utiliza și notația științifică prin adăugarea unui e (pentru exponent), urmat de exponentul numărului.

2.998e8

Adică 2,998 × 108 = 299.800.000.

Calculele cu numere întregi (numite și întregi) mai mici decât cele 9 cvadrilioane menționate mai sus sunt garantate a fi întotdeauna precise. Din păcate, calculele cu numere fracționale nu sunt în general. La fel cum π (pi) nu poate fi exprimat cu precizie printr-un număr finit de cifre zecimale, multe numere își pierd o anumită precizie atunci când sunt disponibili doar 64 de biți pentru a le stoca. Este o rușine, dar provoacă probleme practice doar în situații specifice. Important este să fii conștient de asta și să tratezi numerele digitale fracționale ca aproximări, nu ca valori precise.

Aritmetica

Principalul lucru de făcut cu numerele este aritmetica. Operațiile aritmetice precum adunarea sau înmulțirea preiau două valori numerice și produc un nou număr din ele. Iată cum arată ele în JavaScript:

100 + 4 * 11

Simbolurile + și * se numesc operatori. Primul înseamnă adunare, iar al doilea înseamnă înmulțire. Punerea unui operator între două valori îl va aplica acelor valori și va produce o nouă valoare.

Dar exemplul înseamnă „adăugați 4 și 100 și înmulțiți rezultatul cu 11” sau înmulțirea se face înainte de adunare? După cum probabil ați ghicit, înmulțirea are loc prima. Dar, ca și în matematică, puteți schimba acest lucru prin includerea adunării în paranteze.

(100 + 4) * 11

Pentru scădere, există operatorul -, iar împărțirea se poate face cu operatorul /.

Când operatorii apar împreună fără paranteze, ordinea în care sunt aplicați este determinată de precedența operatorilor. Exemplul arată că înmulțirea vine înaintea adunării. Operatorul / are aceeași prioritate ca *. La fel și pentru + și -. Când mai mulți operatori cu aceeași prioritate apar unul lângă celălalt, ca în 1 - 2 + 1, aceștia sunt aplicați de la stânga la dreapta: (1 - 2) + 1.

Aceste reguli de prioritate nu sunt ceva de care ar trebui să vă faceți griji. Când aveți îndoieli, adăugați doar paranteze.

Mai există un operator aritmetic, pe care s-ar putea să nu-l recunoașteți imediat. Simbolul % este folosit pentru a reprezenta operația de rest. X % Y este restul împărțirii lui X la
Y
. De exemplu, 314 % 100 produce 14, iar
144 % 12
0. Prioritatea operatorului rest este aceeași cu cea a înmulțirii și împărțirii. De asemenea, veți vedea adesea acest operator numit modulo.

Numere speciale

Există trei valori speciale în JavaScript care sunt considerate numere, dar nu se comportă ca numere normale.

Primele două sunt Infinity și -Infinity, care reprezintă infinititățile pozitive și negative. Infinity - 1 este încă Infinity și așa mai departe. Totuși, nu puneți prea multă încredere în calculul bazat pe infinit. Nu este corect din punct de vedere matematic și va duce rapid la următorul număr special: NaN.

NaN înseamnă „nu un număr”, chiar dacă este o valoare a tipului numărului. Veți obține acest rezultat atunci când, de exemplu, încercați să calculați 0 / 0 (zero împărțit la zero), Infinity - Infinity
sau orice număr de alte operații numerice care nu dau un rezultat semnificativ.

Sursa: Marijn Haverbek, Eloquent JavaScript, licența CC BY-NC 3.0. Traducere și adaptare: Nicolae Sfetcu

Proiectarea, dezvoltarea şi întreţinerea siturilor web
Proiectarea, dezvoltarea şi întreţinerea siturilor web

Un ghid pentru dezvoltatorii web, cu accent pe HTML, XML, JavaScript, SQL, tehnologii web, software web, software pentru dezvoltare web, aplicaţii web, şabloane pentru aplicaţii web, AJAX, servicii web, sindicalizarea web, web design, situri web, găzduirea web, analiza siturilor web, … Citeşte mai mult

Nu a fost votat $2,99$11,97 Selectează opțiunile
Ghid WordPress pentru dezvoltatori
Ghid WordPress pentru dezvoltatori

WordPress este o platformă pentru site-uri web rapidă, fiabilă, cu facilități multiple pentru dezvoltatori și ușor de utilizat. Totusi, dezvoltatorii și beneficiarii au de multe ori nevoie să adauge funcționalități suplimentare pentru a răspunde nevoilor lor. Acest ghid oferă unele … Citeşte mai mult

Nu a fost votat $3,99 Selectează opțiunile
Tehnologia Blockchain - Bitcoin
Tehnologia Blockchain – Bitcoin

Internetul a schimbat complet lumea, cultura şi obiceiurile oamenilor. După o primă fază caracterizată prin transferul liber al informaţiilor, au apărut preocupările pentru siguranţa comunicaţiilor online şi confidenţialitatea utilizatorilor. Tehnologia blockchain asigură ambele aceste deziderate. Relativ nouă, ea are şansa să producă … Citeşte mai mult

Nu a fost votat $2,99$11,99 Selectează opțiunile

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *