Reconversia javascript a numărului în șir. JavaScript: Conversia tipului de date

JavaScript este un limbaj inepic (mai precis, tastat slab sau tastat dinamic). Aceasta înseamnă că nu ar trebui să specificăm tipul de variabilă când este declarat. Izimisul oferă flexibilitate JavaScript și simplitate, preferată pentru limbajul de scripting (deși aceste caracteristici primesc prețul lipsei de rigor, importante pentru programe lungi și mai complexe, care sunt adesea scrise în limbi mai stricte, cum ar fi C sau Java). O caracteristică importantă a lucrărilor flexibile cu tipurile de date în JavaScript este transformările automate de date efectuate de interpret. De exemplu, dacă metoda Document.Write () este transmisă, JavaScript îl convertește automat la o reprezentare echivalentă a șirului. În mod similar, verificarea valorii șirului în starea de instrucțiuni Dacă JavaScript convertește automat acest șir la o valoare logică - în falsă, dacă șirul este gol și în True altfel.

Regula principală este că, atunci când valoarea unui tip are loc în context, unde este necesară valoarea unui alt tip, JavaScript încearcă automat să convertească valoarea în modul dorit. Prin urmare, de exemplu, în context, care presupune o variabilă logică, numărul este convertit într-o valoare logică.

Obiectul din contextul șirului este convertit în șir. Montarea în contextul numeric al JavaScript este încercarea de a converti la număr.

Conversia "Obiect de tip elementar"
De exemplu, într-un context logic, toate obiectele de mai jos sunt convertite într-adevăr:

New Boolean (False) // Valoarea internă este egală cu fals, dar obiectul
// convertite la true
Număr nou (0)
Nou șir nou (")
Array nou ()

Transformarea obiectelor din număr începe cu apelul de valoare a valorii () a acestui obiect. Majoritatea obiectelor moștenesc metoda standard Valoarea () obiectul de clasă, care pur și simplu returnează obiectul în sine. Deoarece metoda Standard ValueF () nu returnează valoarea elementară, JavaScript încearcă apoi să convertească obiectul la un număr prin apelarea metodei de tostring () și transformarea șirului rezultat. Pentru matrice, aceasta duce la rezultate interesante. Amintiți-vă că metoda de tostring () convertește elementele matricei în șir și apoi returnează rezultatul concatenării acestor rânduri cu virgule între ele. În consecință, o matrice fără elemente este transformată într-un șir gol care este convertit la 0! În plus, dacă matricea constă dintr-un element, numărul n, matricea este transformată într-o reprezentare a șirului acestui număr, care este apoi transformată înapoi la numărul N.

Dacă o matrice conține mai mult de un element sau dacă elementul său unic nu este un număr, matricea este convertită în NAN. În JavaScript, contextul nu este întotdeauna determinat fără echivoc! Operatorul + și operatorii de comparare (și\u003e \u003d) funcționează atât cu numere, cât și șiruri, astfel încât atunci când obiectul este utilizat cu unul dintre acești operatori, acesta nu este clar ceea ce trebuie transformat într-un număr sau într-un șir. În majoritatea cazurilor, JavaScript încearcă mai întâi să convertească un obiect prin apelarea metodei ValueF (). Dacă această metodă returnează valoarea elementară (de obicei numărul), această valoare este utilizată. Cu toate acestea, adesea valoarea () pur și simplu returnează un obiect fără conversie; În acest caz, JavaScript încearcă apoi să convertească un obiect la șir folosind metoda Tostring (). Există o singură excepție de la această regulă de conversie: când obiectul de dată este utilizat cu operatorul +, conversia este efectuată utilizând metoda Tostring (). Existența acestei excepții se datorează faptului că data are atât metoda de tostring (), cât și metoda valorii (). Când utilizați data cu operatorul + aproape întotdeauna necesită o concatenare a șirului. Dar, atunci când data este implicată în operațiuni de comparație, este aproape întotdeauna necesar să se efectueze o comparație numerică pentru a determina care dintre cele două puncte de timp a fost precedată de altul.

Majoritatea obiectelor sau nu au metoda de valoare () sau această metodă nu returnează rezultate utile.

Când operatorul + este utilizat pentru obiect, concatenarea șirului are loc, de obicei, și nu adăugați. Când operatorul de comparație este aplicat obiectului, o comparație a șirului este de obicei efectuată, nu numerică.

Definirea obiectului metodă specială Valoarea () se poate comporta diferit. Prin definirea metodei de valori (), returnarea numărului, puteți aplica declarații aritmetice și alte instrucțiuni, dar adăugarea obiectului dvs. nu este așa cum era de așteptat: metoda Tostring () nu mai este numită și o reprezentare a șirului Numărul returnat de metodă este implicat în valoarea concatenării ().

În cele din urmă, amintiți-vă că metoda ValueF () nu este numită tonumber (), strict vorbind, sarcina sa este de a transforma un obiect într-o valoare elementară semnificativă, astfel încât unele obiecte pot avea valori () metode care returnează rândurile.

Tipuri de conversie explicite
Java-script nu definește operatorul de transformare ca în limbile C, C ++ și Java, dar oferă mijloace similare. În numărul JavaScript 1.1 (și în ECMA-262) (), boolean (), șir () și obiect () poate fi numit nu numai ca designeri, ci și ca funcții. Fiind cauzate în acest fel, aceste funcții încearcă să le convertească
Argumente în tipul corespunzător. De exemplu, puteți converti orice valoare x la șir folosind șir (x) și orice valoare a y la un obiect utilizând obiectul (Y).

Există mai multe tehnici care pot fi utile pentru efectuarea transformărilor de tip explicit. Pentru a converti o valoare la un șir, faceți-o o concatenare cu un șir gol:

Var x_as_string \u003d x + "";

Pentru a converti o valoare la un număr, deduceți zero din acesta:

Var x_as_number \u003d x - 0;

Este posibil să se transforme orice valoare la o valoare logică utilizând operatorul!, De două ori aplicat:

Var x_as_boolean \u003d! X;

Datorită tendinței JavaScript de a converti automat datele la cerințele necesare acest moment Tipul, conversiile explicite nu sunt de obicei necesare. Cu toate acestea, ocazional sunt utile și pot fi aplicate pentru a face programul mai clar și mai precis.

Transformarea numerelor în șir
Transformarea numerelor în șir este efectuată în JavaScript, posibil mai des decât altele. Deși se întâmplă, de obicei, în mod automat, există câteva moduri utile de a transforma în mod explicit acest tip. Două am văzut deja:

Var String_Value \u003d șir (număr); // Folosind designerul de șir ()
// ca o funcție
Var String_Value \u003d Număr + ""; // concatenare cu un șir gol

O altă oportunitate asigură metoda toostring ():

String_value \u003d număr.tostring ();

Metoda Tostring () a obiectului numeric (valorile numerice elementare sunt convertite în obiecte numerice, astfel încât să puteți apela această metodă) acceptă un argument opțional care stabilește baza sistemului numeric la care va fi efectuată conversia. Dacă argumentul nu este specificat, transformarea este efectuată de bază 10. Dar puteți converti numerele cu alte baze (între 2 și 36). De exemplu:

Var n \u003d 17;
binar_string \u003d n.tostring (2); // la fel de "10001"
Octal_string \u003d "0" + n.tostring (8); // la fel de "021"
hex_string \u003d "0x" + n.tostring (16); // la fel de "0x11"

Lipsa versiunilor JavaScript la versiunea 1.5 constă în absență moda standardpermițându-vă să specificați numărul de semne zecimale în rândul care rezultă din transformarea numărului sau necesită utilizarea notării exponențiale. Acest lucru poate complica afișarea numerelor care au formate tradiționale, cum ar fi valorile în numerar.

ECMAScript V3 și JavaScript 1.5 Bypass acest obstacol prin adăugarea a trei noi metode de conversie în linie la clasa de numere. Metoda TOFIXED () convertește numărul în șir și afișează numărul specificat de numere după punctul zecimal fără a utiliza notația exponențială. Metoda toexponențială () convertește numărul în șir, înregistrându-l în notație exponențială cu o singură cifră înainte de punctul zecimal și numărul specificat de numere după aceasta. Metoda Toprecision () afișează un număr utilizând numărul specificat de cifre semnificative. Dacă un astfel de număr de cifre semnificative nu sunt suficiente pentru a emite o întreagă parte a numărului, este înregistrată în notație exponențială. Rețineți că toate cele trei metode au rotunjit corect cifrele de linie rezultată. Uită-te la următoarele exemple:

Var n \u003d 123456,789;
n.tofixed (0); // "123457"
n.tofixed (2); // "123456.79"
N.toexponent (1); // "1.2e + 5"
N.toexponential (3); // "1.235E + 5"
N.toprecision (4); // "1.235E + 5"
N.toprecision (7); // "123456,8"

Conversia rândului în numere
Am văzut că în contextul numeric al liniei reprezentând numerele sunt transformate automat în numere reale. După cum se arată mai sus, această conversie poate fi explicit:

VAR NUMBER \u003d Număr (String_Value);
VAR NUMBER \u003d STRIC_VALUE - 0;

O astfel de transformare este incomod datorită rigoarei sale excesive. Funcționează numai cu numere zecimaleȘi deși convertirea permite spații de conducere și de închidere, nu permite caractere neexplate după numărul din linie. Pentru transformări mai flexibile, puteți utiliza funcțiile parseint () și parsefloat (). Aceste funcții sunt transformate și returnate de orice număr prezent la începutul liniei, ignorând orice personaje non-numerice de închidere. Funcția PerseInt () Numai întregul număr întreg, iar parsefloat () este atât numere întregi și numere de puncte plutitoare. Dacă șirul începe cu "0x" sau "0x", parseint () interpretează-o ca un număr hexazecimal. De exemplu:

Parseint ("3 șoareci orbi"); // returnează 3.
Parsefloat ("3.14 metri"); // returnează 3.14.
Parseint ("12.34"); // întoarce 12.
Parseint ("0xff"); // returnează 255.

Funcția de parsint () poate avea un al doilea argument care indică baza numărului numărului procesat. Valori valide - de la 2 la 36. De exemplu:

Parseint ("11", 2); // returnează 3 (1 * 2 + 1)
Parseint ("ff", 16); // întoarce 255 (15 * 16 + 15)
Parseint ("zz", 36); // returnează 1295 (35 * 36 + 35)
Parseint ("077", 8); // returnează 63 (7 * 8 + 7)
Parseint ("077", 10); // returnează 77 (7 * 10 + 7)

Dacă parseInt () și parsefloat () nu pot converti șirul specificat la număr, ei returnează Nan.

Parseint ("unsprezece"); // întoarce nan.
Parsefloat ("72,47 $"); // întoarce nan.

Nu există nici o diferență în ce tip de variabilă este utilizată în expresie. Dacă expresia este matematică, toate variabilele sale vor fi interpretate automat ca numerice. Dacă liniile sunt procesate, atunci toți "participanții" de expresii sunt considerați ca linii. Cu toate acestea, sarcina de conversie la JavaScript "rândul numărului" există într-un context mult mai larg.

JavaScript metode de conversie a rândurilor în numere

Metodele de arsenal pentru transformarea corzilor în numere nu sunt mari, dar suficiente în toate cazurile simple. Aici JavaScript (pentru începători în special) este calea de la simplu la complex în exemple practice.

Exemplul descrie patru linii diferite. În primul bloc de tip de ieșire fiecare funcție variabilă Tipul este definit ca șir. Apoi, fiecare linie este foarte pur și simplu convertită la număr. În al doilea bloc de ieșire, modificările variabilelor după transformare sunt vizibile, tipul lor a devenit un număr. Exemplul de conversie a parasefloat JavaScript este în mod special indicativ: a fost "12e + 3", a devenit "12000".

Modificări la conversia unui șir la un număr poate fi semnificativă! Dar numai primele personaje sunt importante: ar trebui să fie digitale. Dacă nu există un singur simbol digital, rezultatul va fi NAN.

Transformarea inversă a șirului "a devenit" de către număr nu este întotdeauna același șir. Acest moment poate fi folosit pentru a verifica corectitudinea introducerii informațiilor numerice.

Metode convenționale de transformare

Există numere întregi și, respectiv, fracționate, rândul JavaScript la numărul convertește prin:

  • parseign;
  • parsefloat.

Cazul general este implementat prin utilizarea unui șir într-o expresie matematică simplă.

Este suficient să puneți în fața șirului de simbol "+" și dacă există un număr în el, rezultatul expresiei va fi numărul. Valoarea variabilei se poate schimba, dar tipul va schimba întotdeauna: TypeoL va afișa numărul, nu șirul. Este important să înțelegem că utilizarea unei variabile transformate în expresia liniei poate arăta un rezultat complet diferit.

JavaScript pentru începători în acest context este extrem de simplu. Este mai dificil să înțelegeți activitatea unei conversii întregi prin metoda PASSINT, deoarece funcționează în mașină sistem zecimal Numărul, dar poate interpreta șirul ca o octal sau hexazecimal. În acest caz, această circumstanță nu depinde întotdeauna de al doilea parametru, ceea ce indică sistemul numeric.

JavaScript rând la număr se transformă întotdeauna, dar dacă nu există niciun simbol digital în rând la începutul liniei, atunci rezultatul va fi Nan.

Este necesar să aveți idei despre sistemele numerice, despre metodele de înregistrare a hexazecimalului (numărul începe cu numerele "0x") și cu numerele octale (numărul începe cu "0").

Pentru a înțelege nuanțele metodei JavaScript Parsefloat, este suficient să aveți o idee despre înregistrarea matematică este un număr real.

Conversie

JavaScript este un limbaj de browser, deoarece este mai multe limbi critice ale simbolurilor din afara setului principal al alfabetului latin și numerelor. Sortați operația supraviețuită. Dar nu are întotdeauna sens să trimită date către server pentru scopuri de sortare, mai ușor și mai practic de a lucra în loc în browser.

Pentru a rezolva o astfel de sarcină, puteți converti simbolurile șirului în codurile lor numerice sau puteți atribui o secvență comandată de numere în codurile sau cifrele numerice și cifre. Metoda CHARCODEAT () aplicată șirului atribuie o valoare numerică 98 din variabila IB, adică codul literei "B". Având în vedere că valoarea codului literei "A" este de 97, puteți obține numerele tuturor literelor alfabetului latin în ordine ascendentă pe linii și seturi majuscule. Similar cu literele alfabetului rus.

Varianta de sortare proprie prin numere vă permite să formați seturile dorite de caractere. Este posibil, de exemplu, să "interceptați" chirilic și latină și să le amestecați pentru a lăsa doar litere de scris excelente, adăugați la seturile de file și spații.

Formarea unui număr unic de șir

Dacă codul literei "A" este 97, atunci diferența dintre litera și numărul 97 va da un număr unic de literă din alfabet. Rezumând numerele unice pentru fiecare simbol de linie, este dificil să obțineți un număr unic de acest șir.

Dacă fiecare poziție a literei din șir este atribuită, de exemplu, poziția:

  • 0 Greutate 1;
  • 1 greutate 10;
  • 2 Greutate 100;

se înmulțește numărul unic al fiecărui caracter al șirului pe greutatea poziției în care este detectată și prin însumarea tuturor numerelor puteți obține un număr unic și îl utilizați ca o corespondență neechivocă în linia originală.

O astfel de conversie a rândului este o reversibilă, adică de numărul pe care îl puteți obține întotdeauna linia sursă. O astfel de transformare este benefică, deoarece cu un număr puteți face orice operațiune în siguranță în contextul codificării, a caracteristicilor chirilice și a altor caracteristici locale ale paginii site-ului, a câmpului de aplicare, a țărilor vizitatorilor.

Selectori de pagini de "cultivare"

Adesea apare sarcina de a crea selectori pe paginile site-ului, ale căror valori nu pot fi specificate în avans, dar în timp sunt completate. În prima aplicație, un selector gol este disponibil pentru primul vizitator pentru a introduce informații.

Fiecare intrare nouă a liniilor de informații din selector (de către orice vizitator) este transformată în număr, care, împreună cu originalul, este trimisă la serverul de stocare. Când începe o nouă sesiune de lucru sau un nou vizitator, selectorul nu mai este gol. Pagina de descărcare vine în browser cu un selector non-gol.

Cu fiecare valoare de selector nou, numai odată ce merge la serverul de stocare și numai după ce i se atribuie un cod digital unic.

Pentru a rezolva această sarcină, metoda JavaScript nu poate fi utilizată pentru a utiliza un rând. Metodele obișnuite parsint și parsefloat sunt concepute pentru alte utilizări, dar puteți veni cu un algoritm pentru conversia fără echivoc a șirului în număr și nu neapărat reversibilă. Este suficient ca algoritmul algoritmului de conversie să nu fie repetat în diferite seturi de caractere din linie.

Optimizarea și analizele traficului

La formarea unei pagini, dezvoltatorul utilizează cantități semnificative de informații. Furnizați un vizitator pentru a introduce informații - mod bun Pentru a reduce ratingul site-ului datorită funcționalității sale slabe și dezamăgește vizitatorul.

Atribuirea unui manipulator de evenimente sub forma unei funcții JavaScript la acțiunile vizitatorului pentru anumite blocuri de informații, puteți formula un filtru care să permită vizitatorului să pună cu exactitate un gol, să găsească informatie necesara, obțineți soluția dorită.

Transformarea informațiilor cu litere mici poate fi o capacitate arbitrar în parte a liniei și foarte mică în număr. Cu alte cuvinte, convertirea rândului JavaScript la numărul de dezvoltator efectuează în funcție de algoritmul său. Vizitatorul manipulează informații de înțeles, iar serverul are o cantitate minimă de date - un număr.

Dinamica multor numere pentru toți vizitatorii în contextul informațiilor exact cunoscute permite o altă funcție JavaScript (nu manipulator), numită de răspunsul serverului prin mecanismul AJAX, imediat în timp real pentru a oferi tuturor vizitatorilor informațiile necesare în același timp. Astfel încât sistemul funcționează.

Această opțiune pentru conversia rândului JavaScript este foarte solicitată în dezvoltarea jocurilor online, conferințe interactive, transfer mesaje instant etc.

Utilizarea instrumentelor de transformări

JavaScript și CSS în contextul procesării informații numerice. vă permit să gestionați afișarea paginii fără participarea serverului. Regulile CSS sunt construite ca substring, recursiv. De obicei, parametrul este numărul urmat de mai multe litere (de exemplu, "Px", "PT", "em", ...). Parametrul este un substrent în regulă, iar regula intră în un substrol în stilul unei clase sau identificator.

Recursion javascript.STrete. Structura ... merge la numărul dorit, convertește de la șir la număr, îl schimbă și scrie înapoi la locația dorită. Regula se schimbă "mașina". Este simplu și convenabil, nici o participare la server.

Există două modalități principale de a converti șirul la JavaScript. O modalitate este de ao analiza și un alt mod - schimbați tipul la număr. Toate trucurile din alte răspunsuri (de exemplu, unitar plus) implică o constrângere implicită ca un șir la număr. De asemenea, puteți face același lucru cu funcția numerică.

Sintactic

Var parsed \u003d parsint ("97", 10);

parseint și Parsefloat sunt două funcții utilizate pentru parsarea rândurilor în numere. Analiza sintaxei se va opri în tăcere dacă se încadrează într-un simbol care nu recunoaște că poate fi util pentru analiza sintactică a șirurilor, de exemplu "92px", dar este, de asemenea, oarecum periculos pentru că nu vă va da nici o eroare cu un rău intrarea, în schimb "returnează Nan dacă șirul nu pornește cu numărul. Gapul de la începutul liniei este ignorat. Aici este un exemplu de ceea ce face ceva diferit, ceea ce aveți nevoie și nu indică faptul că ceva a mers gresit:

Var widgetssold \u003d parseint ("97.800", 10); // widgetsold este acum 97

Bună practica indică întotdeauna ca un al doilea argument. În browserele vechi, dacă șirul a început cu 0, acesta ar fi interpretat ca Octal, dacă nu a fost specificat de valoarea lui Radix, care a atras mulți oameni prin surprindere. Comportamentul pentru lansarea hexazecimală începe dacă șirul începe cu 0x dacă valoarea radixului nu este specificată. 0xff. Standardul a schimbat efectiv utilizând ECMAScript 5, deci browsere moderne Nu mai execută Octal când gazda este indicată dacă valoarea radixului nu este specificată. Parseint înțelege radurile la baza 36, \u200b\u200biar în acest caz literele superioare și minuscule sunt procesate ca echivalente.

SCHIMBAREA TIPULUI CU NUMĂR

Toate celelalte trucuri menționate mai sus care nu folosesc parseINT, implică o constrângere implicită a șirului la număr. Prefer să o fac clar

Var turnat \u003d număr ("97");

Acest lucru este diferit de metodele de analiză (deși încă ignoră spațiile). Este strict: dacă nu înțelege întreaga linie decât se întoarce NAN, astfel încât să nu o puteți folosi pentru șiruri de caractere de tip 97px. Deoarece aveți nevoie de un număr primitiv, nu obiectul de împachetare a numărului, asigurați-vă că nu setați noul înainte de funcția Număr.

Evident, convertirea la număr vă oferă o valoare care poate fi flotor, și nu un număr întreg, deci dacă doriți un număr întreg, trebuie să-l schimbați. Există mai multe modalități de a face acest lucru:

Var rotunjit \u003d matemath.floor (număr ("97.654")); // Alte opțiunile sunt Mateth.ceil, matemath.round var fix \u003d număr ("97.654"). TOFIXED (0); // rotunjit, mai degrabă decât trunchiat var bitwised \u003d număr ("97.654") 0; // nu folosiți pentru numere mari

Orice operator amar (aici sunt o binecuvântare sau, dar puteți face o dublă negare, ca într-un răspuns anterior sau un bit Shift) convertește valoarea la un număr întreg pe 32 de biți, iar majoritatea sunt convertite într-un număr întreg semnat. Rețineți că acest lucru Nu va avea nevoie pentru întregi mari. Dacă un număr întreg poate fi reprezentat în 32 de biți, acesta va fi finalizat.

~ ~ "3000000000.654" \u003d\u003d\u003d -1294967296 // Aceasta este aceeași cu numărul ("3000000000.654") | 0 "3000000000.654" \u003e\u003e\u003e 0 \u003d\u003d\u003d 3000000000 // Shift dreapta nesemnate vă oferă un biți suplimentar "3000000000.654"\u003e \u003e\u003e 0 \u003d\u003d\u003d 3647256576 // Însă nu reușește cu numere mai mari

Pentru a lucra corect cu numere mari, trebuie să utilizați metode de rotunjire

Math.Floor ("3000000000.654") \u003d\u003d\u003d 3000000000 // Acesta este același cu Math.Floor (Număr ("3000000000.654"))

Rețineți că toate aceste metode înțeleg notația exponențială, prin urmare 2E2 este de 200 și nu Nan. În plus, numărul înțelege "Infinity", în timp ce metodele de analiză nu.

Personalizat

Este greșit că oricare dintre aceste metode face exact ceea ce vrei. De exemplu, am nevoie de de obicei o eroare care apare atunci când o eroare de analiză de sintaxă și nu am nevoie de sprijin infinit, expozanți sau lacune de conducere. În funcție de utilizarea dvs., uneori are sens să scrieți o funcție de conversie a utilizatorului.

Verificați întotdeauna că ieșirea numărului sau a uneia dintre metodele de analiză este numărul pe care îl așteptați. Veți dori aproape cu siguranță să utilizați ISNAN pentru a vă asigura că numărul nu este NAN (de obicei, aceasta este singura modalitate de a afla că analiza sintaxei a eșuat).

În JavaScript există 2 funcții încorporate pentru a converti rândurile în numere: parsefloat () și parseint ().

parsefloat () ia argumentul un șir care trebuie adus la un tip numeric și returnează numărul de tip float. Numărul trebuie să fie cuprins la începutul liniei. Dacă după un număr din linie există încă câteva caractere, apoi au tăiat. Partea fracționată a numărului trebuie înregistrată prin intermediul punctului (virgula nu este percepută ca separator). În cazul în care parsefloat () nu poate converti un șir, acesta returnează Nan.

De asemenea, funcția se poate ocupa de "Num N înmulțit cu 10 la gradul X", care în programare este obișnuit să se înregistreze prin litera E, de exemplu: 0,5E6 sau 0,5E + 6. Gradul poate fi, de asemenea, negativ: 0,5E-6, care este de 0,5 * 10 ^ -6 sau 0,5 / 1000000.

Parsefloat ("3,78 kg") // 3.78 Parsefloat ("KG33") // Nan Parsefloat ("0004.111") // 4.111 Parsefloat ("0x66") // parsefloat ("" 5 " ") // 0.5 Parsefloat (" "- 5" ") // -0.5 parsefloat (" 0.5E6 "") // 500000 parsefloat ("0,03e + 2") // 3 parsefloat ("" 3e- 4 "") // 0.0003 Parsefloat ("" - 3E-4 ") // -0.0003

Funcția de parsot (șir [, radix]) ia șirul ca primul argument, îl analizează și returnează un număr întreg (Integer Integer). Funcția încearcă să analizeze sistemul numeric în care numărul este înregistrat în linia sursă (de exemplu, zecimal, octal sau hexazecimal - dar nu numai acestea). De asemenea, sistemul numeric poate fi specificat explicit prin transmiterea acestuia prin al doilea parametru radix. Parametrul Radix poate lua orice număr de la 2 la 36 (în sisteme de la 10, literele alfabetului englez sunt utilizate, de la A la Z).

Numere de tip 1.5E6 Funcția nu se ocupă ca parsefloat ().

Citiți exemplele de mai jos pentru a nu pune pe capcane, sunt valorificate în funcționarea funcției parsint ().

Parseint ("" 25 "") // 25 parseint ("" - 25 "") // -25 parseint ("" 45.12 "" ("045", 10) // 45 parseint (" 70 ", 8) // 56 (70 în sistemul octal este de 56 în zecimal) parsint (" 070 ") // 56 (Important !!! Zero va forța mai întâi funcția să analizeze șirul ca număr octal) Parseint ("88" ", 8) // nan (în sistemul octal fără cifră 8) parseint (" a1 ") // nan (important !!! Funcția implicită nu percepe numărul de 16 bogați, Dacă nu adăugați la rândurile de început 0x) parsint ("A1", 16) // 161 (aici este indicat clar de sistemul numeric) parsint ("0xa1") // 161 (formatul de număr de 16-riche corect, Nu puteți specifica cel de-al doilea parametru) parsint ("099") // 0 (important! Numărul este perceput ca octal, dar care conține caractere nevalide) parseint ("0.5E6") // 0 (important! ! Nu lucrați ca parsefloat) parseint ("zz" ", 36) // 1295 parseint (" "- ff" ") // nan parseint (" "- ff", 16) //255

Dacă procesează datele de la câmpul de textAcest lucru intră în utilizator, utilizați întotdeauna parseint () împreună cu cel de-al doilea parametru Radix, vă va proteja codul de la rezultate neașteptate.

În JavaScript există 2 funcții încorporate pentru a converti rândurile în numere: parsefloat () și parseint ().

parsefloat () ia argumentul un șir care trebuie adus la un tip numeric și returnează numărul de tip float. Numărul trebuie să fie cuprins la începutul liniei. Dacă după un număr din linie există încă câteva caractere, apoi au tăiat. Partea fracționată a numărului trebuie înregistrată prin intermediul punctului (virgula nu este percepută ca separator). În cazul în care parsefloat () nu poate converti un șir, acesta returnează Nan.

De asemenea, funcția se poate ocupa de "Num N înmulțit cu 10 la gradul X", care în programare este obișnuit să se înregistreze prin litera E, de exemplu: 0,5E6 sau 0,5E + 6. Gradul poate fi, de asemenea, negativ: 0,5E-6, care este de 0,5 * 10 ^ -6 sau 0,5 / 1000000.

Parsefloat ("3,78 kg") // 3.78 Parsefloat ("KG33") // Nan Parsefloat ("0004.111") // 4.111 Parsefloat ("0x66") // parsefloat ("" 5 " ") // 0.5 Parsefloat (" "- 5" ") // -0.5 parsefloat (" 0.5E6 "") // 500000 parsefloat ("0,03e + 2") // 3 parsefloat ("" 3e- 4 "") // 0.0003 Parsefloat ("" - 3E-4 ") // -0.0003

Funcția de parsot (șir [, radix]) ia șirul ca primul argument, îl analizează și returnează un număr întreg (Integer Integer). Funcția încearcă să analizeze sistemul numeric în care numărul este înregistrat în linia sursă (de exemplu, zecimal, octal sau hexazecimal - dar nu numai acestea). De asemenea, sistemul numeric poate fi specificat explicit prin transmiterea acestuia prin al doilea parametru radix. Parametrul Radix poate lua orice număr de la 2 la 36 (în sisteme de la 10, literele alfabetului englez sunt utilizate, de la A la Z).

Numere de tip 1.5E6 Funcția nu se ocupă ca parsefloat ().

Citiți exemplele de mai jos pentru a nu pune pe capcane, sunt valorificate în funcționarea funcției parsint ().

Parseint ("" 25 "") // 25 parseint ("" - 25 "") // -25 parseint ("" 45.12 "" ("045", 10) // 45 parseint (" 70 ", 8) // 56 (70 în sistemul octal este de 56 în zecimal) parsint (" 070 ") // 56 (Important !!! Zero va forța mai întâi funcția să analizeze șirul ca număr octal) Parseint ("88" ", 8) // nan (în sistemul octal fără cifră 8) parseint (" a1 ") // nan (important !!! Funcția implicită nu percepe numărul de 16 bogați, Dacă nu adăugați la rândurile de început 0x) parsint ("A1", 16) // 161 (aici este indicat clar de sistemul numeric) parsint ("0xa1") // 161 (formatul de număr de 16-riche corect, Nu puteți specifica cel de-al doilea parametru) parsint ("099") // 0 (important! Numărul este perceput ca octal, dar care conține caractere nevalide) parseint ("0.5E6") // 0 (important! ! Nu lucrați ca parsefloat) parseint ("zz" ", 36) // 1295 parseint (" "- ff" ") // nan parseint (" "- ff", 16) //255

Dacă gestionați date dintr-un câmp de text care intră în utilizator, utilizați întotdeauna ParseInt () împreună cu cel de-al doilea parametru radix, acesta vă va proteja codul de la rezultate neașteptate.