Tipuri de date javascript: concepte de bază, verificare, conversie

Dacă un programator a lucrat cu limbaje precum C # sau Java, el știe că pentru a declara o variabilă trebuie să stabilească de la început tipul statistic al datelor care vor fi stocate în variabila în cauză. În cazul în care valoarea unei variabile specificate trebuie să fie schimbată cu un tip diferit, sistemul va genera o eroare. În schimb, JavaScript are un tip de date dinamic și nu este nevoie să specificați ce tip va stoca variabila, deoarece JS va încerca să rezolve problema în funcție de valorile date în momentul executării contextului.

Fundamentele datelor în JavaScript

Fundamentele datelor în JavaScript

Datele JS sunt împărțite în două grupe: primitive și obiecte. Prima include șiruri de text (String), date logice - adevărat sau fals (Logical) și numere (Number). Există alte două tipuri primitive speciale: Null și Undefined. Acestea arată tipurile de date JavaScript neordonate, interconectate, denumite și cu proprietăți.

Obiectele sunt create special de programator, unele dintre ele speciale: global, prototip, array-uri, funcții, clase, clase predefinite JS, clasa RegExp pentru gestionarea expresiilor regulate și găsirea de tipare în text, clasa de erori pentru depozitare informații asociate erorilor. Primele limbaje de programare nu foloseau obiecte, ci doar variabile.

Variabilele sunt un spațiu de memorie al computerului căruia dezvoltatorii îi atribuie conținuturi, de cele mai multe ori cu o valoare numerică, un tip de caracter sau un șir de caractere - o valoare alfanumerică formată doar din text amestecat cu numere. Ca un exemplu de tip de date JavaScript, puteți defini o variabilă "a", care conține 32, și o puteți scrie ca:

a = 32.

Apoi puteți schimba valoarea lui "a" și să faceți:

a = 78.

Sau faceți ca "a" să fie echivalentă cu valoarea unei alte variabile "b", de exemplu:

a = b,

Variabilele sunt obiecte elementare: un număr, un caracter, o valoare adevărată sau falsă, în timp ce, ca obiecte sunt tipuri complexe, care pot fi formate dintr-o mulțime de informații. Dar ambele forme ocupă același spațiu de memorie, care poate fi mai mult sau mai puțin mare.

Tipuri primitive

Tipuri primitive

Spre deosebire de obiecte, tipurile de date primitive din JavaScript nu sunt referențiale, adică atunci când se face o atribuire a unei valori dintr-o altă variabilă.

Există astfel de tipuri primitive în JS:

  • logic;
  • numeric;
  • minuscule;
  • zero;
  • nedefinit.

Logic reprezintă unul dintre: "adevărat" sau "fals".

  • var boo1 = true;
  • var boo2 = false;

Există un singur tip de număr în JS, și poate fi scris cu sau fără virgulă zecimală. Se întâmplă și un număr:

  • +Infinit;
  • -Infinit;
  • NaN(nu este un număr).

var num1 = 32;

var num2 = + Infinit;

Liniile sunt utilizate pentru a stoca text. Acestea trebuie să fie între ghilimele duble sau simple. În JS, șirurile de caractere sunt imuabile.

var str1 = "Bună ziua, eu sunt";

var str2 = "Bună ziua, eu sunt";

Variabilă care nu are valoare, nedefinită.

var test Var;

consolă.log (testVar); // nedefinit

Boolean - este un tip de un tip de date care returnează unul din două lucruri: adevărat/false. Tipul de date Boolean din JavaScript este numit după matematicianul George Boole, deci este întotdeauna scris cu majusculă. Putem demonstra principiul de funcționare de acest tip cu un exemplu:

  1. Deschideți consola JS și tastați fiecare dintre următoarele declarații, apăsând "Enter" după fiecare acțiune pentru a vedea rezultatul.
  2. Rețineți că după fiecare operator se folosește un comentariu pe o singură linie pentru a explica ce înseamnă acesta.
  3. 1<10 // 1 este mai mic decât 10?
  4. 100> 2000 // 100 este mai mare decât 2000?
  5. 2 === 2 // 2 este exact 2?
  6. false === false //
Funcție booleană

Funcția Boolean returnează valoarea booleană a unei variabile. De asemenea, poate fi utilizat pentru a căuta rezultatul logic al unei condiții și al unei expresii, ceea ce permite JavaScript să utilizeze tipul de date funcțional.

Caractere imuabile

Caracterele sunt un nou tip primitiv în JS. Acestea sunt create cu ajutorul unei funcții:

const mySymbol = Symbol(`mySymbol`).

De fiecare dată când programatorul apelează această funcție, se creează un caracter nou și unic. Acestea pot fi utilizate ca constante pentru a reprezenta concepte precum culorile. Caracterele sunt utilizate în principal ca chei de proprietate și nu intră niciodată în conflict cu nicio altă cheie - caracter sau șir de caractere. De exemplu, este posibil ca un obiect să devină iterativ, utilizat prin intermediul unei bucle for-of și a altor mecanisme ale limbajului, folosind un simbol stocat în "Symbol.iterator" ca o cheie.

Simboluri imuabile

În șirul A, simbolul este utilizat ca cheie de metodă. Acest simbol unic face ca obiectul să poată fi repetat și permite utilizarea unei bucle "for-of". Nu este posibilă forțarea caracterelor în șiruri de caractere deoarece există o conversie forțată sau implicită a tipurilor de date JavaScript. Interzicerea forței previne unele erori, dar complică și lucrul cu simbolurile.

Noul tip de primitivă este reprezentat de token-uri, care servesc ca identificatori unici. Programatorul creează simboluri folosind funcția fabrică "Symbol()", care seamănă în mare măsură cu "String" - returnând șiruri de caractere atunci când este apelată de o funcție:

const symbol1 = Symbol();

Symbol() are un parametru opțional de tip șir de caractere care vă permite să dați simbolului nou creat o descriere. Această descriere este utilizată atunci când simbolul este convertit într-un șir de caractere cu "toString()" sau "String()".

Operatori aritmetici

JS, la fel ca toate limbajele de programare, are o abilitate încorporată de a face matematică, ca un calculator. Ele se efectuează pe numere sau variabile care sunt reprezentate ca numere.

Operatori aritmetici

Operatorul de adunare, reprezentat prin semnul plus (+), adună două valori și returnează suma.

var x = 2 + 2; // x returnează 4

Operatorul de scădere cu semnul minus (-) sustrage două valori și returnează diferența.

var x = 10 - 7; // x returnează 3

Operatorul de înmulțire, reprezentat de un asterisc (*), înmulțește două valori și returnează produsul.

var x = 4 * 5; // x returnează 20

Operatorul de împărțire, reprezentat printr-o bară oblică (/), împarte două valori și returnează cvorumul.

var x = 20 / 2; // x returnează 10

Mai puțin cunoscut este operatorul modulus, care returnează restul după împărțire, reprezentat prin semnul procentual (%).

var x = 10 % 3; // returnează 1

Aceasta înseamnă că "3" intră de trei ori în "10", iar "1" este restul.

Increment efectuează o acțiune prin care un număr va fi mărit cu unu folosind operatorul de incrementare reprezentat de semnul dublu plus (++).

var x = 10;x++; // x revine la 11

Acest lucru se întâmplă după repartiție. De asemenea, puteți scrie ce se întâmplă înainte de destinație. Prin comparație:

++x;

var x = 10;

var y = x++;

// y este 10, x este 11;

precum și:

var x = 10;

var y = ++x;

// y este 11, x este 11.

Decrement - numărul va fi decrementat cu unu, operatorul de decrementare fiind reprezentat de un dublu semn minus (--).

var x = 10;x--;

// x returnează 9

La fel ca mai sus, se poate scrie și:--x;

Varietăți de operatori JS:

  • operator de atribuire;
  • operatori aritmetici de creștere și descreștere;
  • operatori de egalitate;
  • operatori relaționali;
  • operatori logici.

Funcțiile adevărat sau fals

Operatorii de comparare vor evalua egalitatea sau diferența a două valori și vor returna "adevărat" sau "fals". Acestea sunt utilizate în mod obișnuit în declarațiile logice. Două semne egale (==) înseamnă egal în JS. Este ușor pentru programatorii începători să facă confuzie între semnele de egalitate simple, duble și triple, trebuie să ne amintim că un semn de egalitate simplu aplică o valoare unei variabile și nu evaluează niciodată o egalitate.

var x = 8;

var y = 8;

x == y; // adevărat

Acesta este un tip de egalitate liber și va returna "true" chiar dacă se folosește un șir de caractere în loc de un număr.

var x = 8;

var y = "8";

x == y; // adevărat

Trei semne de egalitate (===) denotă egalitate strictă în JS.

var x = 8;

var y = 8;

x === y; // adevărat

Aceasta este o formă mai frecvent utilizată și mai precisă de definire a egalității decât funcția normală "egal (==)", deoarece necesită ca tipul și valoarea să returneze true.

var x = 8;

var y = "8";

x === y; // fals

Semnul exclamării urmat de un semn egal (!=), înseamnă că nu este egal în JS. Acesta este exact opusul lui "==" și va verifica doar valoarea, nu și tipul.

var x = 50;

var y = 50;

x != y; // fals

Un semn de exclamare urmat de două semne egale (!==), înseamnă strict diferit. Acesta este exact opusul lui (===) și va verifica atât valoarea, cât și tipul. Un alt personaj cunoscut, mai puțin decât (<), va verifica dacă valoarea din stânga este mai mică decât cea din dreapta. O valoare mai mică sau egală cu (<=) - la fel ca mai sus, dar va returna și "true". Mai mare decât (>) va verifica dacă valoarea din stânga este mai mare decât cea din dreapta. O valoare mai mare sau egală cu (>=), la fel ca mai sus, dar va fi de asemenea adevărat.

Funcțiile

Verificarea dinamică a tipului

Tipurile de date și variabile în JavaScript sunt un limbaj de programare de bază. Multe erori de execuție în JS sunt erori de tip. De exemplu, atunci când încearcă să înmulțească "un număr" cu "un șir de caractere", primesc o eroare sub forma "Not a Number" returnată. Uneori, atunci când apelați funcții și primiți eroarea "undefined is not a function", acest lucru se întâmplă atunci când încercați să accesați o proprietate care este nedefinită. Deoarece JS nu poate găsi proprietatea, returnează valoarea implicită a acesteia în rezervă: undefined. Un alt greșeală comună, legate de tip atunci când se încearcă modificarea sau accesarea unei proprietăți de la o valoare care este nulă sau nedefinită. Nu există constructori cum ar fi Undefined sau Null.

Verificarea dinamică a tipului

Sistemul de tipuri JS ajută la evitarea acestor erori comune. Prin definiție, este un limbaj interpretat și dinamic, și necesită ca sistemul de tipuri să funcționeze în timpul execuției. De asemenea, limbajul încearcă să ajute prin convertirea silențioasă a tipurilor de valori. Schimbarea sau forțarea tipului este motivul pentru care mulți dezvoltatori trec la utilizarea strictă(===) pentru a verifica egalitatea valorilor.

Verificarea dinamică a tipului de date din JavaScript se face prin intermediul bibliotecii TypeRight. Printre alte caracteristici, aceasta adoptă abordarea de a implementa următoarele pseudoclase al căror unic scop este de a fi partea dreaptă a unui operator instanceof:

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

TypeRight nu oferă în prezent o clasă pentru a verifica dacă valoarea este un obiect, dar poate fi ușor de adăugat.

Recipiente variabile

Variabilele în JS sunt containere care conțin date reutilizabile. Înainte de ES2015, variabilele JavaScript erau declarate exclusiv cu ajutorul cuvântului cheie var:

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

Astăzi, variabilele sunt definite prin tipuri: var, let și const. Ele sunt unice în felul lor și servesc la creșterea eficienței dezvoltării codului, dar se recomandă să se utilizeze: let - dacă este posibil și const - ori de câte ori valoarea variabilei trebuie să rămână constantă. Utilizarea variabilelor pentru a stoca date este nucleul limbajului și constă în trei părți.

Declararea variabilei - aici variabila este înregistrată în domeniul de aplicare corespunzător. Exemple de declarații de variabile:

  • var x;
  • var cupă;
  • var masina.

Inițializarea are loc atunci când declarați o variabilă. Aici, motorul JavaScript îi atribuie o memorie sau un spațiu. Din acest motiv, odată ce o variabilă este declarată, ea ia valoarea nedefinită chiar înainte de atribuire.

Atribuirea unei variabile este cel mai important pas atunci când se utilizează. Aici, datele sunt atribuite variabilei, care este o valoare, folosind operatorul de atribuire "=".

În JavaScript, valorile sunt de unul dintre tipurile de date standard:

  • șir;
  • număr;
  • logic;
  • zero;
  • nedefinit.

Sintaxa pentru atribuirea de tip poate fi văzută mai sus doar cu șiruri de caractere care au ghilimele simple sau duble. De asemenea, valorile booleene pot fi fie adevărate, fie false. La numirea variabilelor în JavaScript, trebuie respectate anumite reguli, și anume:

  1. Numele trebuie să înceapă cu o literă minusculă.
  2. Numele nu pot conține caractere sau începe cu caractere.
  3. Numele nu pot începe cu o cifră.
  4. Numele pot conține o combinație de majuscule, minuscule și cifre.
containere variabile

Metode de inițializare JS

O variabilă este inițializată atunci când conținutul sau valoarea sa este stabilită pentru prima dată. De exemplu, price = 22.55 - aceasta poate fi o modalitate de inițializare a variabilei. Acesta poate fi declarat și inițializat în același timp. De exemplu, ați putea scrie o variabilă "preț = 22.55", cu care variabila a fost declarată și inițializată pe aceeași linie. JS nu necesită declararea unui tip de variabilă și chiar permite ca o variabilă să stocheze conținuturi de tipuri diferite în momente diferite. De exemplu, ați putea folosi "preț = 22,55", iar într-un loc mai târziu scrie prețul = "foarte scump". Acesta este un lucru care ar cauza o eroare în alte limbaje, dar este acceptat de JavaScript.

Metode de inițializare JS

JS permite ca o variabilă să fie utilizată fără a fi declarată. În multe limbaje de programare este necesar să se declare variabila înainte ca aceasta să poată fi utilizată, dar JS nu obligă. Atunci când limbajul găsește o variabilă care nu este declarată, creează automat variabila și permite utilizarea ei.

Utilizarea incorectă a cuvântului cheie "var" poate duce la o eroare, ceea ce va face ca JS să nu mai funcționeze, adică pagina web nu se va afișa corect. var este folosit doar pentru a declara o variabilă, nu poate fi folosit pentru nimic altceva. Odată ce o variabilă a fost declarată, aceasta va fi utilizată fără cuvântul cheie var care o precede. Dacă o variabilă este deja declarată, JavaScript va încerca să continue și să o recupereze.

Demonstrarea funcționării

Pentru a demonstra modul de funcționare a codului, pentru a întări conceptele de bază ale tipurilor de date JavaScript, programul citește codul prezentat în figură și stocat în fișierul de extensie html.

Tip Demo

După redarea rezultatului, asigurați-vă că pagina web este redată în mod normal, adică JavaScript este executat în mod normal, iar rezultatul așteptat ar trebui să arate următoarele:

  1. Prețul variabil este valabil: nedefinit (se acceptă).
  2. Variabila data1 validă: null (acceptat).
  3. Preț variabil valabil: 32.55 (accepta).
  4. Preț dublu: 65.1 (accepta).
  5. Suma obținută prin înmulțirea prețului cu cantitatea este: 325,5 (acceptare).
  6. Variabila de preț acum: foarte scump (accepta).
  7. Prețul dublu acum: NaN (accepta).
  8. Prețul variabil a fost anunțat pentru a doua oară și este acum valabil: 99.55 (accepta).
  9. Variabila $ discount_applied: 0.55 (accepta).
Demonstrație de funcționare

Înțelegerea modului în care funcționează limbajul va face automat din dezvoltator un programator mai bun. Dar cum "practica face perfecțiunea", nu este suficient să înveți teoria, ci este important să începi să aplici în practică elementele de bază ale bazei de date JavaScript și funcționarea datelor. După ce a citit informațiile de mai sus, un programator începător va găsi ușor să răspundă la întrebarea despre câte tipuri de date există în JavaScript.

Articole pe această temă