JavaScript este o limbă a browserului, deci nu fiecaresarcina are nevoie de propriile variabile, matrice și obiecte. În multe cazuri, este suficient să folosiți DOM (Document Object Model). Dar chiar și în astfel de cazuri, o descriere corectă a datelor utilizate întotdeauna face programul mai perfect, mai convenabil de utilizat și rafinament ulterior.
Cuvintele contează, dar atunci când numiți ceva în programceea ce este supus utilizării și schimbării, este adecvat să ne limităm la cuvintele „date” și „variabile”. Ei bine, ceea ce vor fi - JavaScript Array, Object sau doar Integer - depinde de sarcină, mai exact de locul specific din ea.
Programatorii sunt obișnuiți să manipuleze datele.Au existat și până în prezent există variabile într-o gamă largă de reprezentări (șiruri, simboluri, numere, date ...), de regulă, tablourile și (în ultimele două decenii) obiecte au fost poziționate separat.
La un moment dat, tastarea puternicădatele au devenit o relicvă și acum, în fiecare limbă modernă, cele date pot schimba nu numai conținutul, ci și tipul. Bine sau rău, se va vedea, dar tastarea puternică are trăsăturile sale pozitive. Cu toate acestea, dacă s-a întâmplat așa, atunci de ce să nu „rastăm” deloc întregul proces?
Semantic, adică afarăsintaxă, orice variabilă contează. Și se schimbă în orice stare de fapt. Secvența modificărilor este deja o cantitate, care în termeni JavaScript este o matrice de elemente.
Cu alte cuvinte, dacă programatorul a decis să nu adaugevalorează tipul unei variabile și pune pe limbă grija conversiei corecte și în timp util a tipurilor, atunci de ce să nu simplificăm deloc: există doar date și care vor fi acestea la punctul de aplicare - un număr , șir, matrice sau obiect - depinde de cod să decidă. Și mai corect: ceea ce este dat ar trebui să determine de la sine ce se poate face cu el și cum.
Variabilele simple sunt de diferite tipuri. Conversiile de tip se efectuează automat atunci când este necesar.
Acest exemplu descrie o variabilă simplă s, încare va forma rezultatul lucrării cu JavaScript Array aCheck. Variabila i este descrisă direct în bucla aCheck. Aici elementele matricei (create folosind JavaScript Array push construct) sunt trei valori de tipuri diferite. Prima buclă tipărește numele tipurilor pe șirul s, a doua - valorile reale. Conversia de tip se face automat.
În JavaScript, Array nu este o matrice asociativă. Elementele sunt accesate prin taste numerice, numărul maxim de elemente este 232, dar nu ar trebui să experimentați cu cantitățile limitative de elemente.
Un algoritm bun are întotdeauna o cantitate observabilă de date, iar construcția de lungime a matricei JavaSscript a fost introdusă deloc în sintaxă pentru a controla dimensiunea tabloului în contextul conținutului său.
Valoarea aCheck.lungimea nu va fi întotdeauna numărul real de elemente. În JavaScript, o matrice poate conține cât de mult și ce a fost trimis acolo, dar uneori trebuie să lucrați din greu pentru a afla cât de mult.
În acest exemplu, expresia aCheck [5] mărește matricea la șase elemente. Speranțele că funcția lungime va da valoarea 4 nu este justificată.
În mod formal, matricile JavaScript pot fi doar obișnuite, adică elementele sunt accesate prin indici numerici. Cu toate acestea, în realitate, puteți folosi idei asociative.
O sarcină foarte simplă și banală de sortare a șirurilortabelele pe coloane pot fi rezolvate printr-o matrice asociativă. Un punct într-un cerc lângă un nume de coloană nu înseamnă sortare, o săgeată în sus - în ordine descrescătoare și o săgeată în jos - în ordine crescătoare. Dând clic pe o coloană se schimbă direcția (implementarea JavaScript: Sort Matrice).
În acest exemplu, se formează matricea cSortColsdirecțiile de sortare pentru fiecare coloană (S, C, W, ...). Valori de direcție numai u, d. În construcția for, totul este cusut într-o singură linie (atât codul coloanei, cât și direcția de sortare). Această buclă parcurge toate elementele matricei și nu este nevoie să utilizați funcția de lungime a matricei JavaScript.
Este o practică plăcută să scrii „var xMass = [];” sau"var yArr = {};". În primul caz, va fi definit un tablou obișnuit, în cel de-al doilea caz - unul asociativ. Puteți utiliza, de asemenea, varianta JavaScript New Array (), dar de obicei această construcție este utilizată în alte scopuri, în principal pentru lucrul cu obiecte.
Matricea creată poate fi completată imediatvariabile, dar, de regulă, este relevantă completarea și manipularea matricei în dinamică, în timpul executării programului. Dacă aveți nevoie de sortare, puteți utiliza construcția JavaScript Sort Array, care nu este flexibilă, dar vă permite să controlați procesul prin propria sa funcție.
Apelare: arr.sort () sortează în ordinea caracterelor ASCII. Funcția inversă - permutări ale elementelor: arr.reverse (). Această funcție inversează ordinea elementelor matrice.
În ambele cazuri, cuvântul arr reprezintă o matrice.În primul caz, puteți utiliza propria funcție de sortare, adică apelarea arr.sort (myfunc (a, b)) va apela propria funcție myfuct, care ar trebui să returneze rezultatul în funcție de date: a și b. Dacă primul este mai mic decât al doilea, atunci -1, dacă invers, atunci 1 și dacă a = b, atunci 0. Aici criteriul de comparație este definit de programator în funcția myfunc.
O funcție apelată în timpul procesului de sortare poateefectuați diverse acțiuni. Din punctul de vedere al construcției în care este aplicat, nu trebuie să răspundă la parametrii de intrare, iar rezultatul său nu sunt doar cele trei numere -1, 1 și 0. Când se aplică într-o matrice ciclic la fiecare element, poate reconstrui matricea.
Dacă ne imaginăm că o matrice este o anumită semnificație, o anumită structură de date, atunci JavaScript Array se transformă într-o variabilă cu conținut mutabil.
Dacă luăm ca bază utilizarea primului sauultimul element al matricei ca conținut, apoi executarea funcției de sortare poate transforma matricea astfel încât primul / ultimul element să fie un element diferit, așa cum este cerut de condițiile problemei.
O astfel de idee poate permite reconstruirea algoritmuluisoluții în așa fel, în special, încât să nu fie nevoie să folosiți construcțiile if () {} else {} și switch () {case "": ...; caz "": ...; ...}.
Prin manipularea conținutului unui tablou, puteți muta elemente în interiorul acestuia, schimbând astfel funcționalitatea externă pe care o puteți obține prin primul sau ultimul element.
Orice limbaj este bun, deoarece permite nu numaischimbă structura și conținutul datelor, dar și codul propriu-zis. Ideea de a considera o variabilă ca o abstracție, adică inițial fără a prevedea statutul său tipic, deschide noi orizonturi.
Începând cu o abstracție, o variabilă, matrice sau obiect vă permite să reprezentați procesul de procesare a datelor în funcție de aceste date și în dinamică.
De exemplu, citind textul, puteți descrie cele date„text”, care va fi împărțit în propoziții - criteriul „punct” (în context, adică ținând cont de sintaxa acceptată a propozițiilor). Propozițiile vor fi împărțite în fraze (în context, virgulă și sintaxa corespunzătoare). Alte cuvinte și litere.
Rezultat:poți lucra la nivel de texte, propoziții, cuvinte. La fiecare nivel, puteți crea funcții de „unicitate”, care vă vor permite să căutați similare sau similare. Puteți crea funcții pentru aplicarea de propoziții, fraze la alte date.
Programarea modernă nu mai este o dogmă, cifaptul că construcțiile sintactice create în ultimele decenii și experiența acumulată deschid noi orizonturi neprevăzute de dezvoltatorii de limbaj este încă de descoperit și utilizat.