Javascript tipovi podataka: osnovni koncepti, validacija, transformacija

Ako je programer radio sa jezicima kao što su C # ili Java, on zna da je za deklaraciju varijable potrebno postaviti statistički tip podataka koji će biti pohranjen u navedenoj varijabli od samog početka. Ako je potrebno promijeniti vrijednost navedene varijable u drugi tip, sistem će izdati grešku. Za razliku od njih, JavaScript ima dinamički tip podataka i nema potrebe da se precizira koji tip će ova varijabla pohraniti, jer će u procesu izvršavanja konteksta JS pokušati riješiti problem u skladu sa navedenim vrijednostima.

Osnove podataka u JavaScript-u

Osnove podataka u JavaScript-u

JS podaci su podijeljeni u dvije grupe: primitivni i objekti. Prvi uključuju tekstni niz (niz), logičke podatke-tačno ili netačno (logički) i brojeve (Broj). Postoje još dva posebna primitivna tipa: Null i Undefined. Oni demonstriraju međusobno povezane neuređene JavaScript tipove podataka koji imaju ime i svojstva.

Objekat je posebno kreiran od strane programera, među njima postoje neki posebni: globalni, prototip, nizovi, funkcije, klasa, unapred definisane JS klase, RegExp klasa za upravljanje regularnim izrazima i traženje obrazaca u tekstu, klasa greške za čuvanje informacije vezane za grešku. Prvi programski jezici nisu koristili objekte, već samo varijable.

Varijable su prostor u memoriji računara kojem programeri dodjeljuju sadržaj uglavnom numeričkom vrijednošću, vrstom znaka ili nizom znakova - alfanumeričkom vrijednošću koja se sastoji samo od teksta pomiješanog s brojevima. Kao primjer JavaScript tipa podataka, možete definirati varijablu "a" koja sadrži 32 i napisati je kao:

a = 32.

Tada možete promijeniti vrijednost "a" i učiniti:

a = 78.

Ili napravite " a "ekvivalentno vrijednosti druge varijable "b", Na primjer:

a = b,

Varijable su elementarni objekti: broj, simbol, tačna ili netačna vrijednost, dok, kako objekti složeni su, koji se mogu formirati velikom količinom informacija. Ali oba oblika zauzimaju isti memorijski prostor, koji može biti manje-više velik.

Primitivni tipovi

Primitivni tipovi

Za razliku od objekata, primitivni JavaScript tipovi podataka nisu referentni, odnosno kada dodjeljuju vrijednost drugoj varijabli.

U JS-u postoje takvi primitivni tipovi:

  • logički;
  • brojevi;
  • mala slova;
  • nula;
  • neodređeno.

Logično predstavlja jedan od: "tačno" ili "netačno".

  • gdje boo1 = tačno;
  • var boo2 = netačno;

U JS postoji samo jedna vrsta broja, može se zapisati sa ili bez decimalnog zareza. Broj je takođe slučajno:

  • +Beskonačnost;
  • -Beskonačnost;
  • NaN(ne broj).

var num1 = 32;

var num2 = + beskonačnost;

Linije se koriste za spremanje teksta. Trebalo bi da budu unutar dvostrukih ili pojedinačnih citata. U JS-u su stringovi nepromjenjivi.

var str1 = `Zdravo, ja sam`;

gdje str2 = "Zdravo, ja sam";

Varijabla koja nema vrijednost nije definisana.

var test Var;

konzola.log (testVar); / / undefined

Boolean vrijednost - je tip podataka koji vraća jednu od dvije stvari: tačno/netačno. JavaScript logički tip podataka nazvan je po matematičaru Georgeu Booleu, tako da se uvijek piše velikim slovom. Možete demonstrirati princip rada ovog tipa na primjeru:

  1. Otvorite JS konzolu i unesite svaku od sljedećih naredbi pritiskom na "Enter" nakon svake radnje da biste vidjeli rezultat.
  2. Obratite pažnju na činjenicu da se nakon svakog operatera koristi komentar u jednom redu da objasni šta to znači.
  3. 1<10 / / 1 manje od 10?
  4. 100> 2000 // 100 više od 2000?
  5. 2 === 2 / / 2 je tačno jednako 2?
  6. false === false //
Logička funkcija

Boolean funkcija vraća logičku vrijednost varijable. Može se koristiti i za traženje logičkog rezultata uslova i izraza, što omogućava JavaScript-u da koristi funkcionalni tip podataka.

Nepromjenjivi likovi

Simboli su novi primitivni tip u JS. Oni se kreiraju pomoću funkcije:

const mySymbol = simbol(`mySymbol`).

Svaki put kada programer pozove ovu funkciju, kreira se novi i jedinstveni simbol. Mogu se koristiti kao konstante za predstavljanje koncepata kao što su boje. Simboli se uglavnom koriste kao ključevi imovine i nikada nisu u sukobu sa bilo kojim drugim ključem - simbolom ili nizom. Na primjer, možete napraviti objekat iterativni, koristi kroz" Za-of "petlje i drugih mehanizama jezik, koristeći simbol čuvaju u" simbol.iterator " kao ključ.

Nepromjenjivi znakovi

U redu a, simbol se koristi kao ključ metode. Ovaj jedinstveni marker čini objekt ponovljivim i omogućava upotrebu petlje " za-of. Nije moguće emitovati znakove na stringove jer postoji prinuda ili implicitna konverzija JavaScript tipova podataka. Zabrana prinude sprečava neke greške, ali i otežava rad sa simbolima.

Nova vrsta Primitiva su tokeni koji služe kao jedinstveni identifikatori. Programer kreira simbole koristeći fabričku funkciju "Symbol()", koja je malo slična "stringu" - povratne žice kada ih funkcija pozove:

const symbol1 = simbol();

Simbol() ima opcioni parametar niza koji vam omogućava da novostvorenom simbolu date opis. Ovaj opis se koristi kada se znak konvertuje u string putem "toString ()" ili " String ()".

Aritmetički operatori

JS, kao i svi programski jezici, ima ugrađenu sposobnost matematičkih radnji, poput kalkulatora. Oni ih izvode na brojevima ili varijablama koje su predstavljene kao brojevi.

Aritmetički operatori

Operator sabiranja, predstavljen znakom plus ( + ), dodaje dvije vrijednosti i vraća zbir.

gdje x = 2 + 2; // x vraća 4

Operator oduzimanja, predstavljen znakom minus ( - ), oduzima dvije vrijednosti i vraća razliku.

gdje x = 10-7; / / x vraća 3

Operator množenja, predstavljen zvjezdicom ( * ), množi dvije vrijednosti i vraća proizvod.

gdje x = 4 * 5; / / x vraća 20

Operator podjele, predstavljen kosom kosom ( / ), odvaja dvije vrijednosti i vraća količnik.

gdje x = 20 / 2; / / x vraća 10

Manje poznat je operator modula, koji vraća ostatak nakon dijeljenja i predstavljen je procentualnim znakom (%).

gdje x = 10 % 3; / / povratak 1

To znači da "3" ulazi u "10" tri puta, sa preostalim "1".

Inkrement vrši radnju u kojoj će se broj povećati za jedan pomoću operatora inkrementa predstavljenog dvostrukim znakom plus (++).

var x = 10; x++; / / x vraća 11

Ovo se dešava nakon sastanka. Takođe možete napisati šta se dešava prije sastanka. Za poređenje:

++x;

var x = 10;

var y = x++;

// y je 10, x je 11;

i takođe:

var x = 10;

var y = ++x;

// y je 11, x je 11.

Decrement - broj će se smanjiti za jedan pomoću operatora dekreta, predstavljenog dvostrukim znakom minus (--).

var x = 10; x--;

// x povratak 9

Kao što je gore navedeno, ovo se takođe može napisati:--x;

Različiti JS operatori:

  • operator dodjele;
  • operatori aritmetičkog povećanja i smanjenja;
  • operatori jednakosti;
  • relacijski operatori;
  • logički operatori.

Tačne ili netačne funkcije

Operatori poređenja će procijeniti jednakost ili razliku dviju vrijednosti i vratiti "tačno" ili "netačno". Obično se koriste u logičkim izjavama. Dva znaka jednakosti ( = = ) znače jednako u JS. Programeri početnici mogu lako zbuniti između pojedinačnih, dvostrukih i trostrukih znakova jednakosti, morate zapamtiti da jedan znak jednakosti primjenjuje vrijednost na varijablu i nikada ne procjenjuje jednakost.

var x = 8;

gdje y = 8;

x == y; / / tačno

Ovo je slobodna vrsta jednakosti i vratit će se "tačno" čak i ako se umjesto broja koristi niz.

var x = 8;

gdje y = "8";

x == y; / / tačno

Tri znaka jednakosti ( = = = ) znače strogu jednakost u JS.

var x = 8;

gdje y = 8;

X === y; // tačno

Ovo je češće korišten i precizniji oblik definiranja jednakosti od uobičajene funkcije" jednako (==)", budući da povratak zahtijeva da su vrsta i vrijednost isti tačno.

var x = 8;

gdje y = "8";

x = = = y; / / netačno

Znak uzvika praćen znakom jednakosti (!= ), znači da nije jednak u JS. Ovo je tačna suprotnost od"==", i provjerit će se samo vrijednost, a ne tip.

var x = 50;

gdje y = 50;

x != y; / / netačno

Znak uzvika iza kojeg slijede dva znaka jednakosti (!= = ) znači strogo ne jednak. Ovo je tačna suprotnost (===) i provjerit će i vrijednost i vrstu. Još jedan poznati lik, manje od (<), Provjerit ću je li vrijednost s lijeve strane manja od vrijednosti s desne strane. Manje od ili jednako (<=) - isto kao gore, ali će imati i vrijednost "tačno". Veći od (>) provjerit će je li vrijednost s lijeve strane veća od vrijednosti s desne strane. Vrijednost veća ili jednaka (>= ), isto kao gore, ali će takođe biti tačno.

Funkcije

Provjera dinamičkog tipa

Tipovi podataka i varijable u JavaScript-u su glavni programski jezik. Mnoge greške u izvršenju u JS su greške tipa. Na primjer, kada pokušavaju pomnožiti "broj" sa "nizom", dobijaju grešku u obliku "ne broj" vraćene vrijednosti. Ponekad prilikom pozivanja funkcija i dobijanja greške "Nedefinirano nije funkcija", to se dešava kada pokušavate pristupiti svojstvu koje nije definirano. Pošto JS ne može da pronađe svojstvo, vraća njegovu podrazumevanu vrednost rezervnoj kopiji: undefined. Drugi uobiäťajno, greška vezana za tip je kada pokušavate promijeniti ili pristupiti osobini iz vrijednosti koja je null ili nedefinirana. Ovdje nema konstruktora poput Undefined ili Null.

Provjera dinamičkog tipa

Sistem tipa JS pomaže u izbjegavanju ovih uobičajenih grešaka. Po definiciji, to je interpretirani i dinamični jezik i zahtijeva da sistem tipa radi tokom izvršavanja koda. Jezik takođe pokušava da pomogne nečujnim pretvaranjem tipova vrednosti. Promjena vrste ili prisiljavanje razlog je zašto mnogi programeri prelaze na strogu upotrebu (===) za provjeru jednakosti vrijednosti.

Dinamička JavaScript provjera tipa podataka vrši se kroz TypeRight biblioteku. Između ostalih karakteristika, koristi pristup za implementaciju sljedećih pseudo-klasa, čija je jedina svrha da budu desne strane instanceof operatera:

  • PrimitiveUndefined.
  • PrimitiveNull.
  • PrimitiveBoolean.
  • PrimitiveNumber.
  • PrimitiveString.
  • PrimitiveSymbol.

TypeRight trenutno ne pruža klasu za provjeru da li je vrijednost objekt, ali se može lako dodati.

Varijabilni kontejneri

Varijable u JS su kontejneri koji sadrže podatke za višekratnu upotrebu. Prije ES2015, JavaScript varijable su deklarirane isključivo korištenjem ključne riječi var:

  • var x;
  • var y;
  • var z;

Danas su varijable postavljene po tipovima: var, let i const. Oni su jedinstveni na svoj način i služe za povećanje efikasnosti razvoja koda, međutim , preporučuje se upotreba: neka - kad god je to moguće i const-kad god vrijednost varijable treba ostati konstantna. Upotreba varijabli za čuvanje podataka je osnova jezika i sastoji se od tri dijela.

Deklaracija varijable - ovdje je varijabla registrirana u odgovarajućem opsegu. Primjeri varijabilnih deklaracija:

  • var x;
  • var kup;
  • var car.

Inicijalizacija se dešava kada se proglasi varijabla. Ovdje mu se dodjeljuje memorija ili prostor pomoću JavaScript motora. Zbog toga, čim se proglasi varijabla, ona uzima vrijednost nedefiniranu čak i prije dodjele.

Dodjela varijable je najvažniji korak kada se koristi. Ovdje su varijabli dodijeljeni podaci koji su vrijednosti pomoću operatora dodjele"=".

Vrijednosti u JavaScript-u uzimaju jedan od standardnih tipova podataka:

  • znakovni niz;
  • Broj;
  • logički;
  • nula;
  • neodređeno.

Sintaksa za dodeljivanje tipova može se videti iznad samo sa stringovima sa jednim ili dvostrukim navodnicima. Također, logičke vrijednosti mogu biti istinite ili netačne. Prilikom imenovanja varijabli u JavaScriptu moraju se poštovati određena pravila, i to:

  1. Imena moraju početi malim slovom.
  2. Imena ne mogu sadržavati znakove niti početi znakovima.
  3. Imena ne mogu početi sa brojem.
  4. Imena mogu sadržavati kombinaciju nizova velikih slova, nizova malih slova i cifara.
Varijabilni kontejneri

Načini inicijalizacije JS

Varijabla se inicijalizira kada se njen sadržaj ili vrijednost postave po prvi put. Na primjer, cijena = 22,55 - ovo može biti način za inicijalizaciju varijable. Može se deklarirati i inicijalizirati u isto vrijeme. Na primjer, možete napisati varijablu "cijena = 22,55", sa kojim je varijabla deklarirana i inicijalizirana u jednom redu. JS ne zahtijeva deklaraciju tipa varijable i čak dozvoljava varijabli da čuva sadržaj različitih tipova u različito vrijeme. Na primjer, možete koristiti "cijena = 22,55", a na kasnijem mestu napišite cena = "veoma skupo". Ovo je nešto što na drugim jezicima može dovesti do greške, ali JavaScript je prihvaćen.

Načini inicijalizacije JS

JS vam omogućava da koristite varijablu bez deklarisanja. U mnogim programski jezici , potrebno je proglasiti varijablu prije nego što se može koristiti, ali JS ne obavezuje. Kada jezik pronađe neprijavljenu varijablu, on automatski kreira varijablu i dozvoljava njenu upotrebu.

Nepravilna upotreba ključne riječi " var " može dovesti do greške, zbog koje JS prestaje raditi, odnosno web stranica će biti pogrešno prikazana, var se koristi samo za deklariranje varijable, ne može se koristiti ni za šta drugo. Jednom kada je varijabla deklarirana, ona će se koristiti bez ključne riječi var koja joj prethodi. Ako je varijabla već deklarisana, JavaScript će pokušati da nastavi i dobije je.

Demonstracija rada

Možete demonstrirati rad koda za konsolidaciju osnovnih koncepata JavaScript tipova podataka, program čita kod prikazan na slici i sačuvan u datoteci html ekstenzije.

Demonstracija načina na koji tipovi funkcionišu

Nakon vizualizacije rezultata, oni osiguravaju da se web stranica normalno prikazuje, odnosno JavaScript se normalno izvršava i očekivani rezultat treba pokazati sljedeće:

  1. Varijabilna cijena je važeća: undefined (prihvatiti).
  2. Varijabla data1 je važeća: null (prihvatiti).
  3. Varijabilna cijena važi: 32.55 (prihvatiti).
  4. Dvostruka cijena: 65.1 (prihvatiti).
  5. Iznos dobijen kao rezultat množenja cijene s količinom je: 325,5 (prihvati).
  6. Varijabilne cijene sada: veoma skupo (prihvatiti).
  7. Dvostruka cijena sada: NaN (prihvatiti).
  8. Varijabla cijene objavljena je po drugi put i sada vrijedi: 99,55 (prihvati).
  9. Varijabla $ diskont_applied: 0.55 (prihvatiti).
Demonstracija rada

Razumevanje načina na koji jezik funkcioniše automatski će programera učiniti boljim programerom. Ali s obzirom na to da se" praksa poboljšava", nije dovoljno naučiti samo teoriju, važno je početi primjenjivati osnove JavaScript baze podataka i funkcioniranje podataka. Nakon čitanja gore navedenih informacija, programeru početniku neće biti teško odgovoriti na pitanje koliko tipova podataka ima na JavaScript jeziku.