JavaScript pretvorba broja u nizu. JavaScript: Konverzija tipa podataka

JavaScript je najčešće jezik (tačnije, slabo upisano ili dinamički kucano). To znači da ne bismo trebali odrediti vrstu varijable kada ga proglasite. Inepoza daje JavaScript fleksibilnost i jednostavnost, preferirala je za skriptajući jezik (iako ove karakteristike dobivaju cijenu nesposobnosti strogosti, važnim za duge i složenije programe koji su često napisani na strožeg jezika, poput C ili Java). Važna karakteristika fleksibilnog rada s tipovima podataka u JavaScriptu su automatske transformacije podataka koje obavlja prevodilac. Na primjer, ako se mjeni dokument.write () prenosi, JavaScript ga automatski pretvara u ekvivalentnu reprezentaciju string. Slično tome, provjeravanje vrijednosti niza u skladu s obzirom na uslove, JavaScript automatski pretvara ovaj niz na logičku vrijednost - u lažnom, ako je niz prazan, a u suprotnom.

Glavno pravilo je da kada se vrijednost jedne vrste pojavi u kontekstu, gdje je potrebna vrijednost neke druge vrste, JavaScript automatski pokušava pretvoriti vrijednost na željeni način. Stoga, na primjer, u kontekstu, koji pretpostavlja logičku varijablu, broj se pretvara u logičku vrijednost.

Objekt u kontekstu niza pretvara se u niz. Montaža u numeričkom kontekstu JavaScripta pokušava pretvoriti u broj.

Konverzija "Osnovni objekt"
Na primjer, u logičkom kontekstu, svi predmeti u nastavku pretvaraju se u TRUE:

Nova boolean (lažna) // Interna vrijednost jednaka je lažnom, ali objektu
// pretvoreno u TRUE
Novi broj (0)
Novi string (")
Novi niz ()

Transformacija objekata u broju počinje pozivom na metodu vrijednosti ovog objekta. Većina objekata nasljeđuju standardna metoda Vaneof () Class objekt, koji jednostavno vraća sam objekt. Budući da standardna vrijednost vrijednosti () ne vraća elementarnu vrijednost, JavaScript tada pokušava pretvoriti objekt na broj pozivanjem svog tosting () metode i pretvaranje rezultirajućeg niza. Za nizove to dovodi do zanimljivih rezultata. Podsjetimo da metoda tostiranja () pretvara elemente niza u niz, a zatim vraća rezultat spajanja tih redova s \u200b\u200bzarezima između njih. Shodno tome, niz bez elemenata pretvara se u prazan niz koji se pretvara u 0! Pored toga, ako se niz sastoji od jednog elementa, broj n, niz se pretvara u prikaz niza ovog broja, koji se zatim pretvara natrag na broj N.

Ako niz sadrži više elemenata, ili ako njegov jedan element nije broj, niz se pretvara u nan. U JavaScript-u kontekst se ne utvrđuje nedvosmisleno! Operator + i usporedba operatora (i\u003e \u003d) rade i sa brojevima i nizovima, tako da kada se objekt koristi s jednim od ovih operatera, nejasno je ono što se mora transformirati u broj ili u nizu. U većini slučajeva JavaScript prvo pokušava pretvoriti objekt pozivom na metodu vrijednosti (). Ako ova metoda vrati elementarna vrijednost (obično broj), ova vrijednost se koristi. Međutim, često vrijednost () jednostavno vraća objekt bez konverzije; U ovom slučaju JavaScript tada pokušava pretvoriti objekt na niz pomoću metode tosting () metode. Postoji samo jedna iznimka ovog pravila pretvorbe: Kada se objekt datuma koristi sa operatorom +, pretvorba se vrši pomoću metode ToString (). Postojanje ove iznimke je zbog činjenice da datum ima i metodu tostiranja () i metode vrijednosti (). Kada koristite datum s operatorom + gotovo uvijek je zahtijevao nizu. Ali kada je datum uključen u operacije u poređenju, gotovo je uvijek potrebno izvesti numeričku usporedbu kako bi se utvrdilo koja od dvije trenutke prethodi drugo.

Većina objekata ili nema vrijednost vrijednosti (), ili ova metoda ne vraća korisne rezultate.

Kada se operater + koristi za objekt, obično se odvija struna uzici, a ne dodatak. Kada se operater upoređivanja primijeni na objekt, obično se vrši usporedba niza, a ne numerička.

Definisanje objekta posebna metoda Vrijednostof () može se ponašati drugačije. Definiranjem metode VELIKEOF (), vraćajući broj, aritmetičke i druge izjave možete primijeniti na vaš objekt, ali dodavanje vašeg objekta bit će izveden ne kao očekivano: metoda tostiranja () više nije naziva i naziva TOSTRING-a Broj koji se vraća metodom uključen je u vrijednost sa spajanjem ().

Konačno, zapamtite da se metoda vrijednosti () ne zove tonobroj (), strogo govoreći, njegov zadatak je pretvoriti objekt u smislenu elementarnu vrijednost, tako da neki objekti mogu imati vrijednost za vrijednosti koje vraćaju.

Eksplicitne vrste pretvorbe
Java-skripta ne definira operatera transformacije kao u C, C ++ i Java jezicima, ali pruža slična sredstva. U JavaScript 1.1 (i u ECMA-262) broju (), boolean (), string () i objekt () mogu se pozvati ne samo kao dizajneri, već i kao funkcije. Što se na ovaj način prouzrokuje, ove funkcije pokušavaju pretvoriti svoje
Argumenti u odgovarajućem tipu. Na primjer, možete pretvoriti bilo koju vrijednost x u niz koristeći string (x) i bilo koja vrijednost y na objekt pomoću objekta (Y).

Postoji još nekoliko tehnika koje mogu biti korisne za obavljanje eksplicitnih transformacija tipa. Da biste pretvorili vrijednost u nizu, napravite ga sa praznim nizom:

Var x_as_string \u003d x + "";

Da biste pretvorili vrijednost na broj, odbijte nulu iz njega:

Var x_as_number \u003d x - 0;

Moguće je pretvoriti bilo koju vrijednost na logičku vrijednost pomoću operatera!, Dvaput se primijenio:

Var x_as_boolean \u003d !! x;

Zbog javaScript tendencija da se automatski pretvori podaci na potrebne u ovaj trenutak Vrsta, eksplicitne konverzije obično nisu potrebne. Međutim, povremeno su korisni, i mogu se primijeniti kako bi se program jasniji i tačniji učinili.

Transformacija brojeva u nizu
Transformacija brojeva u nizu vrši se u JavaScriptu, eventualno češće od drugih. Iako se obično se događa automatski, postoji nekoliko korisnih načina da ovu vrstu izričito transformira. Dva što smo već videli:

Var string_value \u003d string (broj); // pomoću dizajnera niza ()
// kao funkcija
Var string_value \u003d broj + ""; // spajanje sa praznim nizom

Druga prilika pruža metodu toostring ():

String_value \u003d broj.tostring ();

Tosting () metoda brojevnog objekta (elementarne numeričke vrijednosti pretvaraju se u broj objekata, tako da možete nazvati ovu metodu) prihvaća opcionalni argument koji postavlja bazu broja brojevnih sistema na koji će se izvršiti pretvorbu. Ako argument nije naveden, transformacija se izvodi po bazi 10. Ali možete pretvoriti brojeve drugim osnovama (između 2 i 36). Na primjer:

Var N \u003d 17;
binarni_string \u003d n.tostring (2); // jednako "10001"
Oktal_string \u003d "0" + n.tostring (8); // jednako "021"
hex_string \u003d "0x" + n.tostring (16); // jednako "0x11"

Nedostatak JavaScript verzija za verziju 1.5 sastoji se u odsutnosti standardna modaOmogućujući vam da odredite broj decimalnih znakova u nizu koji proizlazi iz transformacije broja ili zahtijevaju upotrebu eksponencijalne notacije. To može komplicirati prikaz brojeva koji imaju tradicionalne formate, poput gotovinskih vrijednosti.

Ecmascript v3 i JavaScript 1.5 zaobilaze ovu prepreku dodavanjem tri nova metoda pretvorbe u liniju na klasu broja. Tofixed () metoda pretvara broj na niz i prikazuje navedeni broj brojeva nakon decimalne točke bez upotrebe eksponencijalne notacije. Toexponential () metoda pretvara broj u niz, snimajući ga u eksponencijalnoj nota s jednom cifrom prije decimalne tačke i navedenog broja brojeva nakon njega. Metoda ToProtion () prikazuje broj pomoću navedenog broja značajnih cifara. Ako takav broj značajnih cifara nije dovoljno za izlaganje cijelog dijela broja, snima se u eksponencijalnoj notaciji. Imajte na umu da su sve tri metode ispravno zaokružile rezultirajuće linije. Pogledajte sljedeće primjere:

VAR N \u003d 123456.789;
n.tofixed (0); // "123457"
n.Tofixed (2); // "123456,79"
N.toexponential (1); // "1.2E + 5"
N.toexponential (3); // "1.235E + 5"
N.toprecizija (4); // "1.235E + 5"
N.toprecizija (7); // "123456.8"

Pretvaranje reda u brojevima
Vidjeli smo da se u numeričkom kontekstu linije zastupanja brojeva automatski transformiše u stvarne brojeve. Kao što je prikazano gore, ova konverzija može biti izričito:

Var broj \u003d broj (string_value);
Var broj \u003d string_value - 0;

Takva transformacija je nezgodna zbog prevelike strogosti. Radi samo sa decimalni brojeviI iako pretvorba omogućava vodeći i zatvaranje prostora, ne dopušta nijedan nestalni znakovi nakon broja u liniji. Za fleksibilnije transformacije možete koristiti funkcije Parseint () i ParseFloat (). Ove se funkcije transformišu i vraćaju bilo koji broj prisutni na početku linije, zanemarujući sve zatvaranje ne numeričkih znakova. Parseint () funkcija obrađuje samo cijeli broj, a Parsefloat () su i brojevi cijelih brojeva i plutajućih točaka. Ako niz započne s "0x" ili "0x", parseint () tumači kao heksadecimalni broj. Na primjer:

Parseint ("3 slepa miševa"); // vraća 3.
Parsefloat ("3,14 metra"); // vraća 3,14.
Parseint ("12.34"); // vraća 12.
Parseint ("0xff"); // vraća 255.

Funkcija Parseint () može imati drugi argument koji označava bazu broja procesnog broja. Važeće vrijednosti - od 2 do 36. Na primjer:

Parseint ("11", 2); // vraća 3 (1 * 2 + 1)
Parseint ("FF", 16); // vraća 255 (15 * 16 + 15)
Parseint ("ZZ", 36); // vraća 1295 (35 * 36 + 35)
Parseint ("077", 8); // vraća 63 (7 * 8 + 7)
Parseint ("077", 10); // vraća 77 (7 * 10 + 7)

Ako parseint () i parseff) ne može pretvoriti navedeni niz na broj, oni se vraćaju nan.

Parseint ("Eleven"); // vraća nan.
ParsefFloat ("72,47 dolara"); // vraća nan.

Ne postoji razlika u kojoj vrsti varijable se koristi u izražavanju. Ako je izraz matematički, sve njegove varijable automatski će se tumačiti kao numerički. Ako se obrađuju linije, tada se svi "sudionici" izraza smatraju linijama. Međutim, zadatak konverzije JavaScript "Redom do broja" postoji u mnogo širem kontekstu.

JavaScript metode konverzije redaka u brojevima

Arsenalne metode za pretvaranje nizova u brojevima nisu velike, već su dovoljne u svim jednostavnim slučajevima. Ovdje je JavaScript (za početnike posebno) put od jednostavnog do složenog u praktičnim primjerima.

Primjer opisuje četiri različite linije. U prvom bloku izlaza tipa svaki promenljiva funkcija Typeof je definiran kao niz. Tada se svaki redak vrlo jednostavno pretvori u broj. U drugom izlaznom bloku, promjene varijabli nakon transformacije su vidljive, njihov je tip postao broj. Primjer pretvorbe JavaScript ParaneFloat-a posebno je indikativan: Bio je to "12e + 3", postao je "12000".

Promjene prilikom pretvaranja niza na broj može biti značajno! Ali samo su prvi likovi važni: trebali bi biti digitalni. Ako nema ni jednog digitalnog simbola, rezultat će biti nan.

Obrnuta transformacija niza "postala je" po broju nije uvijek isti niz. Ovaj trenutak se može koristiti za provjeru ispravnosti unosa numeričkih informacija.

Konvencionalne metode transformacije

Postoje cijeli brojevi i postoji frakcijski, odnosno, JavaScript Red za broj pretvara se sa:

  • parseint;
  • parsefloat.

Opći slučaj se provodi pomoću niza u jednostavnom matematičkom izrazu.

Dovoljno je staviti ispred niza simbola "+" i ako postoji broj u njemu, rezultat izraza bit će broj. Vrijednost varijable može se mijenjati, ali tip će se uvijek mijenjati: Typof će prikazati broj, a ne niz. Važno je shvatiti da upotreba transformirane varijable u linijskom izrazu može pokazati potpuno drugačiji rezultat.

Javascript za početnike u ovom kontekstu izuzetno je jednostavan. Teže je razumjeti rad cijele pretvorbe prema Pasrseint metodi, jer djeluje u mašini decimalni sistem Broj, ali može tumačiti niz kao oktalni ili heksadecimalan. U ovom slučaju ova okolnost ne ovisi uvijek o drugom parametru, što ukazuje na broj brojeva.

JavaScript se red za broj uvijek se okreće, ali ako ne postoji digitalni simbol u nizu na početku linije, tada će rezultat biti nan.

Potrebno je imati ideje o brojevnim sistemima, o metodama snimanja heksadecimalnog (broj započinje "0x") i oktalnim brojevima (broj započinje sa "0").

Da biste shvatili nijanse JavaScript metode Aparlation-likoda, dovoljno je imati ideju o tome što je matematički zapis pravi broj.

Konverzija

JavaScript je jezik pretraživača, jer je više drugih jezika kritični prema simbolima izvan glavnog skupa latinske abecede i brojeva. Poredaj - preživljen rad. Ali to ne ima uvijek smisla slati podatke na poslužitelju u svrhu sortiranja, lakše i praktičnije raditi na mjestu u pretraživaču.

Da biste riješili takav zadatak, možete pretvoriti nizove simbole u njihove numeričke kodove ili dodijeliti naručeni redoslijed brojeva u njihovim numeričkim kodovima ili cifrom i cifrom. Charcodeat () metoda primijenjena na nizu dodjeljuje numeričku vrijednost 98 IB varijable, odnosno slovo "B". S obzirom da je vrijednost kodeksa slova "A" 97, možete dobiti broj svih slova latinske abecede u uzlaznim redoslijedom na liniji i velikim slovima. Slično slovima ruske abecede.

Vlastita varijanta sortiranja kroz brojeve omogućava vam da formirate željene skupove znakova. Moguće je, na primjer, "presresti" ćirilicu i latinicu i pomiješati ih kako bi ostavili samo izvrsnu pisanje pisama, dodajte se na setove kartica i razmaka.

Formiranje jedinstvenog broja niza

Ako je kod slova "A" 97, tada će razlika između slova i broja 97 dati jedinstven broj slova u abecedi. Rezimiranje jedinstvenih brojeva za svaki simbol retka, teško je dobiti jedinstveni broj ovog niza.

Ako je svaki položaj slova u nizu dodijeljen težinu, na primjer, položaj:

  • 0 težina 1;
  • 1 težina 10;
  • 2 težina 100;

množi se jedinstveni broj svakog karaktera niza na težini položaja u kojem se otkriva, a sazivajući sve brojeve možete dobiti jedinstveni broj i koristiti je kao nedvosmislenu prepisku u originalnoj liniji.

Takva pretvorba reda je reverzibilna, odnosno po broju uvijek možete dobiti izvornu liniju. Takva je transformacija korisna, jer s brojem možete sigurno napraviti bilo kakve operacije u kontekstu kodiranja, ćiriličnih i drugih lokalnih značajki stranice stranice, polja primjene, zemlje posjetitelja.

"Raste" selektori stranice stranice stranice

Često dolazi zadatak stvaranja selektora na stranicama web stranica, čije se vrijednosti ne mogu precizirati unaprijed, ali s vremenom se nadopunjuju. U prvoj aplikaciji, prvog posjetitelja dostupan je prazan selektor za unos podataka.

Svaki novi unos informativnih linija u selektoru (bilo koji posjetitelj) pretvoren je u broj koji se, zajedno sa originalom, šalje na Skladište. Kada započne nova radna sjednica ili dolazi novi posjetitelj, selektor više nije prazan. Stranica za preuzimanje dolazi na preglednik s ne praznim selektorom.

Sa svakom novom vrijednošću selektora, samo nakon što ode na Skladište i samo jednom dodijelite jedinstveni digitalni kod.

Da biste riješili ovaj zadatak, JavaScript metoda ne može se koristiti za korištenje niza. Uobičajeni metode parseint i analni list dizajnirani su za drugu upotrebu, ali možete se smisliti algoritmom za nedvosmislenu pretvorbu niza u broju, a ne nužno i reverzibilni. Dovoljno je da algoritam algoritma konverzije neće se ponavljati u različitim skupovima znakova u liniji.

Optimizacija i analitika prometa

Prilikom formiranja stranice, programer koristi značajne količine informacija. Omogućite posjetitelju da unese informacije - dobar način Da biste snizili rejting web lokacije zbog svoje slabe funkcionalnosti i razočarajte posjetitelja.

Dodjeljivanjem manifestacije u obliku JavaScript funkcije za postupke posjetitelja za određene blokove informacija, možete formulisati filtar koji će posjetitelju omogućiti da precizno postavi cilj, nađu potrebne informacije, nabavite željeno rješenje.

Transformacija malih podataka ovdje može biti proizvoljno ujedno u dijelu linije i vrlo mala u broju. Drugim riječima, pretvorba JavaScript reda do broja programera izvodi u skladu sa svojim algoritmom. Posjetitelj manipulira razumljive informacije, a poslužitelj ima minimalni iznos podataka - broj.

Dinamika mnogih brojeva na svim posjetiteljima u kontekstu tačno poznatih informacija omogućava još jedno JavaScript funkciju (ne rukovoditelja), nazvanim od odgovora poslužitelja kroz Ajax mehanizam, odmah u stvarnom vremenu da svim posjetiteljima pružite potrebne informacije u isto vrijeme. Dakle, sistem funkcionira.

Ova opcija za pretvaranje JavaScript reda vrlo je u potražnji u razvoju mrežnih igara, interaktivnih konferencija, prijenosa instant poruke itd.

Upotreba alata transformacija

JavaScript i CSS u kontekstu obrade numeričke informacije Dopustite vam da upravljate prikazom stranice bez sudjelovanja poslužitelja. Pravila CSS-a izgrađena su kao podstrelj, rekurzivno. Obično je parametar broj koji slijedi nekoliko slova (na primjer, "PX", "PT", "EM", ...). Parametar je podloga u pravilu, a pravilo ulazi u supstol u stilu klase ili identifikatora.

Rekurzija JavaScript.Strete. Struktura ... prelazi na željeni broj, pretvara se iz niza na broj, mijenja ga i piše na željenu lokaciju. Pravilo se mijenja "Mašina". Jednostavno je i zgodno, nema sudjelovanja servera.

Postoje dva glavna načina pretvorbe niza u JavaScript. Jedan od načina je analizirati ga i drugi način - promijenite svoj tip na broj. Svi trikovi u drugim odgovorima (na primjer, neravljački plus) podrazumijevaju implicitnu prisilu poput niza do broja. Takođe možete učiniti isto sa funkcijom brojeva.

Sintaktičan

Var raščlanjeni \u003d parseint ("97", 10);

parseint and Parsefloat su dvije funkcije koje se koriste za analizu redaka u brojeve. Sintaksa će tiho zaustaviti ako padne u simbol da ne prepoznaje da može biti korisno za sintaktičku analizu žica, na primjer "92px", ali je i pomalo opasno jer neće vam dati grešku s lošim upis, umjesto toga, vratite se "ako se niz ne pokrene s brojem. Jaz na početku linije se zanemaruje. Evo primjera onoga što radi drugačije, što vam treba i ne znači da nešto ide Pogrešno:

Var widgetsSold \u003d Parseint ("97.800", 10); // widgetsSold je sada 97

Dobra praksa uvijek ukazuje na drugi argument. U starim preglednicima, ako je niz započeo sa 0, to bi se tumačeno kao oktal, ako nije određeno vrijednosti Radixa, što je iznenađeno privuklo mnogo ljudi. Ponašanje za heksadecimalno pokretanje pokreće se ako niz započne s 0x ako vrijednost radiksa nije navedena. 0xff. Standard se zapravo promijenio pomoću Ecmascript 5, tako moderni preglednici Više ne radi oktal kada je domaćin naznačen ako vrijednost radiksa nije navedena. Parseint razumije radika u bazi 36, a u ovom slučaju se velika i mala slova obrađuju kao ekvivalentne.

Promjena vrste niza po broju

Svi drugi spomenuti trikovi koji ne koriste parseint, impliciraju implicitne prisile niza na broj. Radije to radim jasno

Var cast \u003d broj ("97");

To se razlikuje od metoda analize (iako još uvijek ignoriše razmake). Strogo je: ako ne razumije cijelu liniju od nan-a, tako da ga ne možete koristiti za žice tipa 97px. Budući da vam je potreban primitivni broj, a ne objekt omotača broja, provjerite da ne postavljate novi prije funkcije broja.

Očito vam pretvorba na broj daje vam vrijednost koja može biti plovak, a ne cijeli broj, pa ako želite cijeli broj, morate je promijeniti. Postoji nekoliko načina za to:

Var zaobljeni \u003d math.floor (broj (broj ("97.654")); // drugi opcije su Math.ceil, math.round var fix \u003d broj ("97.654"). Tofixed (0); // zaobljeni, a ne skraćeni var bitvizirani \u003d broj ("97.654") | 0; // ne koristiti za velike brojeve

Svaki gorki operator (ovdje sam blagoslov ili, ali možete napraviti i dvostruku negaciju, kao u ranijoj odgovoru ili bit-bita) pretvara vrijednost na 32-bitni cijeli broj, a većina ih se pretvara u potpisani cijeli broj. Imajte na umu da je ovo Neće trebati za velike cijele brojeve. Ako je cijeli broj mogao biti zastupljen u 32 bita, bit će završen.

~~ "3000000000.654" \u003d\u003d\u003d -1294967296 // To je isti kao broj ("3000000000.654") | 0 "3000000000.654" \u003e\u003e\u003e 0 \u003d\u003d\u003d 3000000000 // Neigrani desni pomak daje vam dodatni "300000000000.654"\u003e \u003e\u003e 0 \u003d\u003d\u003d 3647256576 //, ali još uvijek ne uspijeva s većim brojevima

Da biste pravilno radili s velikim brojevima, morate koristiti metode zaokruživanja

Math.floor ("3000000000.654") \u003d\u003d\u003d 3000000000 // To je isto kao i math.floor (broj ("3000000000.654"))

Imajte na umu da sve ove metode razumiju eksponencijalnu notaciju, dakle 2E2 je 200, a ne nan. Pored toga, broj razumije "beskonačnost", dok metode analize ne.

Običaj

Pogrešno je da bilo koja od ovih metoda čini upravo ono što želite. Na primjer, obično mi treba grešku koja se događa kada ne treba neuspjeh analize sintakse, a ne treba mi beskonačna podrška, izlagači ili vodeći praznine. Ovisno o vašoj upotrebi, ponekad ima smisla napisati funkciju pretvorbe korisnika.

Uvijek provjerite da li je izlaz broja ili jedna od metoda analize broj koji očekujete. Gotovo sigurno želite koristiti Inan kako biste bili sigurni da broj nije Nan (obično je to jedini način da saznate da analiza sintakse nije uspjela).

U JavaScriptu postoje 2 ugrađene funkcije za pretvaranje redaka u brojevima: Parsefflopt () i parseint ().

parseFloat () uzima argument niz niz koji se mora dovesti do numeričkog tipa i vraća broj plovka tipa. Broj treba sadržavati na početku linije. Ako nakon broja u liniji još uvijek postoje neki likovi, a zatim odsjekli. Frakcijski dio broja treba zabilježiti kroz točku (zarez se ne shvaća kao separator). U slučaju da parseff) () ne može pretvoriti niz, vraća ga nan.

Također, funkcija može podnijeti "num n pomnožen za 10 do stepena X", što je u programiranju uobičajeno zabilježivanje putem slova E, na primjer: 0,5E6 ili 0,525 ili 0,525 ili 6. Stupanj može biti i negativan: 0,50 6, što je 0,5 * 10 ^ -6 ili 0,5 / 1000000.

Parsefloat ("" 3.78kg ") // 3.78 Parsefloat (" KG33 "") // Nan Parsefloat ("" 0004.111 "") // 4.111 Parsefloat ("0x66" ") // 0 parseff (" ". 5") ") // 0,5 Parsefloat (" "-. 5") // -0,5 Parsefloat ("" 0.5E6 "") // 500000 Parsefloat ("0.03e + 2" ") // 3 carsefloat (" "3E- 4 "") // 0,0003 Parsefloat ("" - 3E-4 "") // -0.0003

Funkcija Parseint (string [, radix]) uzima niz kao prvi argument, analizira ga i vraća cijeli broj (tip cijeli broj). Funkcija pokušava analizirati broj broja u kojem se broj bilježi u izvornom retku (na primjer, decimalni, oktalni ili šesterokutni - ali ne samo ovi). Također, broj brojeva može se izričiti izričito prenošenjem ga do drugog parametra radix. Parametar radix može preuzeti bilo koji broj od 2 do 36 (u sistemima iznad 10. slovima engleske abecede koriste se iz A do Z).

Brojevi tipa 1.5E6 Funkcija se ne obrađuje kao parseff) ().

Molimo pročitajte primjere u nastavku kako ne biste stavili na zamke, koriste se u radu funkcije Parseint ().

Parseint ("" 25 "") // 25 Parseint ("" - 25 "") // -25 Parseint ("" 45.12 "") // 45 Parseint ("045" ", 10) // 45 Parseint (" 70 ", 8) // 56 (70 u oktalnom sustavu iznosi 56 u decimalnom) Parseint (" "070") // 56 (važno !!! Nula prvo će moći analizirati nizu kao oktalni broj) Parseint ("" 88 "", 8) // Nan (u oktalnom sustavu nema cifra 8) Parseint ("" A1 ") // Nan (važan !!! Zadana funkcija ne percipira broj kao 16 bogatih, Ako se ne dodajete na početne retke 0x) Parseint ("A1" ", 16) // 161 (ovdje je jasno naznačeno brojevnim sistemom) Parseint (" 0xa1 ") // 161 (ispravan format brojača 16-ricke) Ne možete odrediti drugi parametar) Parseint ("" 099 "") // 0 (važan !!! Broj se doživljava kao oktal, ali sadrže nevažeće znakove) Parseint ("" 0,5E6 ") // 0 (važno! !! ne radi kao cvjetnicu) Parseint ("ZZ" ", 36) // 1295 Parseint (" "- FF" ") // Nan Parseint (" "- FF" ", 16) // -255

Ako obradite podatke iz tekstualno poljeTo ulazi u korisnika, uvijek koristite paraseint () zajedno s drugim parametrom Radix-a, zaštitit će vaš kôd od neočekivanih rezultata.

U JavaScriptu postoje 2 ugrađene funkcije za pretvaranje redaka u brojevima: Parsefflopt () i parseint ().

parseFloat () uzima argument niz niz koji se mora dovesti do numeričkog tipa i vraća broj plovka tipa. Broj treba sadržavati na početku linije. Ako nakon broja u liniji još uvijek postoje neki likovi, a zatim odsjekli. Frakcijski dio broja treba zabilježiti kroz točku (zarez se ne shvaća kao separator). U slučaju da parseff) () ne može pretvoriti niz, vraća ga nan.

Također, funkcija može podnijeti "num n pomnožen za 10 do stepena X", što je u programiranju uobičajeno zabilježivanje putem slova E, na primjer: 0,5E6 ili 0,525 ili 0,525 ili 6. Stupanj može biti i negativan: 0,50 6, što je 0,5 * 10 ^ -6 ili 0,5 / 1000000.

Parsefloat ("" 3.78kg ") // 3.78 Parsefloat (" KG33 "") // Nan Parsefloat ("" 0004.111 "") // 4.111 Parsefloat ("0x66" ") // 0 parseff (" ". 5") ") // 0,5 Parsefloat (" "-. 5") // -0,5 Parsefloat ("" 0.5E6 "") // 500000 Parsefloat ("0.03e + 2" ") // 3 carsefloat (" "3E- 4 "") // 0,0003 Parsefloat ("" - 3E-4 "") // -0.0003

Funkcija Parseint (string [, radix]) uzima niz kao prvi argument, analizira ga i vraća cijeli broj (tip cijeli broj). Funkcija pokušava analizirati broj broja u kojem se broj bilježi u izvornom retku (na primjer, decimalni, oktalni ili šesterokutni - ali ne samo ovi). Također, broj brojeva može se izričiti izričito prenošenjem ga do drugog parametra radix. Parametar radix može preuzeti bilo koji broj od 2 do 36 (u sistemima iznad 10. slovima engleske abecede koriste se iz A do Z).

Brojevi tipa 1.5E6 Funkcija se ne obrađuje kao parseff) ().

Molimo pročitajte primjere u nastavku kako ne biste stavili na zamke, koriste se u radu funkcije Parseint ().

Parseint ("" 25 "") // 25 Parseint ("" - 25 "") // -25 Parseint ("" 45.12 "") // 45 Parseint ("045" ", 10) // 45 Parseint (" 70 ", 8) // 56 (70 u oktalnom sustavu iznosi 56 u decimalnom) Parseint (" "070") // 56 (važno !!! Nula prvo će moći analizirati nizu kao oktalni broj) Parseint ("" 88 "", 8) // Nan (u oktalnom sustavu nema cifra 8) Parseint ("" A1 ") // Nan (važan !!! Zadana funkcija ne percipira broj kao 16 bogatih, Ako se ne dodajete na početne retke 0x) Parseint ("A1" ", 16) // 161 (ovdje je jasno naznačeno brojevnim sistemom) Parseint (" 0xa1 ") // 161 (ispravan format brojača 16-ricke) Ne možete odrediti drugi parametar) Parseint ("" 099 "") // 0 (važan !!! Broj se doživljava kao oktal, ali sadrže nevažeće znakove) Parseint ("" 0,5E6 ") // 0 (važno! !! ne radi kao cvjetnicu) Parseint ("ZZ" ", 36) // 1295 Parseint (" "- FF" ") // Nan Parseint (" "- FF" ", 16) // -255

Ako se nosite sa podacima iz tekstualnog polja u kojem ulazi u korisnik, uvijek koristite paraseint () zajedno s drugim parametrom radix, zaštitit će vaš kôd od neočekivanih rezultata.