JavaScript er et nettleserspråk, så ikke alleoppgaven trenger egne variabler, matriser og objekter. I mange tilfeller er det ganske enkelt å bruke DOM (dokumentobjektmodell). Men selv i slike tilfeller gjør den korrekte beskrivelsen av dataene alltid programmet mer avansert, praktisk å bruke og etterfølgende foredling.
Ord betyr noe, men når du navngir et program,hva som kan brukes og endres, er det aktuelt å begrense oss til ordene "data" og "variabler". Hva de vil være - JavaScript Array, Object eller bare heltall - avhenger av oppgaven, mer presist på det spesifikke stedet der.
Programmerere er vant til å manipulere data.Til i dag har det vært variabler i et bredt spekter av representasjoner (strenger, tegn, tall, datoer ...), som regel ble matriser og (de siste ti tiårene) objekter plassert separat.
Sterk skriving på et bestemt tidspunktdata har blitt en relikvie, og nå i alle moderne språk kan dette ikke bare endre innholdet, men også typen. For bedre eller verre vil det bli sett, men streng skriving har de positive egenskapene. Men hvis dette skjedde, hvorfor ikke "rippe" hele prosessen?
Semantisk sett, det vil si utenforsyntaks, alle variabler betyr noe. Og det endrer seg i enhver situasjon. Sekvensen av endringer er allerede en mengde, som når det gjelder JavaScript er en elementmatrise.
Med andre ord, hvis programmereren bestemte seg for ikke å gjøre detJeg tildelte verdiene til variabeltypen omsorg for riktig og tidsriktig konvertering, så hvorfor ikke forenkle det i det hele tatt: det er bare data, vel, hva slags data vil være på brukspunktet - et tall, en streng, en matrise eller et objekt - dette er koden du skal bestemme. Enda mer riktig: dette skal i seg selv avgjøre hva som kan gjøres med det og hvordan nøyaktig.
Enkle variabler er representert av forskjellige typer. Typekonverteringer utføres automatisk når behovet oppstår.
Dette eksemplet beskriver en enkel variabel s, isom vil være resultatet av å jobbe med JavaScript Array aCheck. Variabelen i er beskrevet direkte i syklusen med arbeid med aCheck. Her er elementene i matrisen (opprettet ved hjelp av JavaScript Array push-konstruksjon) tre verdier av forskjellige typer. Den første sløyfen skriver ut typenavnene i strengene, den andre - de faktiske verdiene. Typekonvertering utføres automatisk.
I JavaScript er ikke Array et assosiativt utvalg. Tilgang til elementer utføres med talltaster, maksimalt antall elementer er 232, men du bør ikke eksperimentere med begrensningsmengder.
En god algoritme har alltid en forutsigbar datamengde, og JavaSscript Array-lengdekonstruksjonen blir ikke introdusert i syntaks for å kontrollere størrelsen på en matrise i sammenheng med innholdet.
Kontroller verdien.lengde vil ikke alltid være det faktiske antall elementer. I JavaScript kan en matrise inneholde så mye av det som ble sendt dit, men noen ganger må du jobbe hardt for å finne ut nøyaktig hvor mye.
I dette eksemplet utvider uttrykket aCheck [5] matrisen til seks elementer. Det er ingen begrunnelse for å håpe at lengdefunksjonen vil gi en verdi på 4.
Formelt sett kan JavaScript Array bare være vanlig, det vil si at elementer får tilgang til ved numeriske indekser. Imidlertid kan du i virkeligheten bruke assosiative ideer.
En veldig enkel og rutinemessig oppgave å sortere strengerkolonnetabeller kan løses gjennom et tilknyttet array. Prikken i sirkelen ved siden av kolonnenavnet indikerer fraværet av sortering, pil opp - i synkende rekkefølge, pil ned - i stigende rekkefølge. Ved å klikke på en kolonne endres retning (JavaScript-implementering: Sort Array).
I dette eksemplet dannes cSortCols i matrisensorteringsanvisninger for hver kolonne (S, C, W, ...). Retningsverdiene er bare u, d. I for in-konstruksjon blir alt sydd i en linje (både kolonnekoden og sorteringsretningen). Denne sløyfen ser gjennom alle elementene i matrisen, og det er ikke nødvendig å bruke JavaScript Array-lengde-funksjonen.
Fin praksis er å skrive "var xMass = [];" eller"var yArr = {};". I det første tilfellet vil en vanlig gruppe bli definert, i det andre tilfellet - assosiativ. Du kan også bruke JavaScript-alternativet New Array (), men vanligvis brukes denne konstruksjonen til andre formål, hovedsakelig for arbeid med objekter.
Det opprettede arrayet kan umiddelbart fylles utvariabler, men som regel er det relevant å fylle ut og manipulere en matrise i dynamikk under programutførelse. Hvis du trenger sortering, kan du bruke JavaScript Sort Array-konstruksjonen, som ikke er fleksibel, men lar deg kontrollere prosessen gjennom sin egen funksjon.
Et anrop til: arr.sort () resulterer i sortering i rekkefølgen på tegnene i ASCII-tabellen. Den inverse funksjonen er permutasjon av elementer: arr.reverse (). Denne funksjonen reverserer rekkefølgen på arrayelementer.
I begge tilfeller betegner ordet arr en array.I det første tilfellet kan du bruke din egen sorteringsfunksjon, det vil si at å ringe arr.sort (myfunc (a, b)) vil føre til å ringe din egen funksjon myfukt, som skal gi et resultat avhengig av dataene: a og b. Hvis den første er mindre enn den andre, så -1, hvis motsatt, så 1, og hvis a = b, så 0. Her blir sammenligningskriteriet bestemt av programmereren i myfunc-funksjonen.
En funksjon som blir kalt under sorteringsprosessen, kanutføre forskjellige handlinger. Fra synspunktet av konstruksjonen den er påført, trenger den ikke å svare på inngangsparametere, og resultatet er ikke bare tre tall -1, 1 og 0. Hvis det blir brukt syklisk på hvert element i matrisen, kan det gjenoppbygge matrisen.
Hvis du forestiller deg at en matrise har en viss betydning, en viss datastruktur, blir JavaScript Array til en variabel med variabelt innhold.
Hvis vi tar utgangspunkt i bruken av den første ellerutførelsen av sorteringsfunksjonen kan transformere matrisen slik at den første / siste blir et annet element, som kreves av oppgavens betingelser.
En slik idé kan gjøre det mulig å gjenoppbygge algoritmen.løsninger på denne måten, spesielt at det ikke vil være behov for å bruke if () {} annet {} og bytte () {case "": konstruerer: ...; sak "": ...; ...}.
Ved å manipulere innholdet i matrisen, kan du flytte elementene inni den, og dermed endre den eksterne funksjonaliteten som kan oppnås gjennom det første eller siste elementet.
Hvert språk er bra fordi det ikke bare tillater detendre strukturen og innholdet i dataene, men også den faktiske koden. Ideen om å betrakte en variabel som en abstraksjon, det vil si uten å først sørge for dens typiske status, åpner for nye horisonter.
Fra abstraksjon lar en variabel, matrise eller objekt oss representere databehandlingen som en funksjon av disse dataene, i tillegg i dynamikk.
Hvis du for eksempel leser teksten, kan du beskrive dette"tekst", som vil bli delt inn i setninger - kriteriet om "punkt" (i sammenhengen, det vil si under hensyntagen til den aksepterte syntaks for setningene). Setninger blir delt opp i setninger (i konteksten, et komma og den tilhørende syntaks). Ytterligere ord og bokstaver.
Resultat:Du kan jobbe på nivå med tekster, setninger, ord. På hvert nivå kan du opprette "unike" funksjoner, som lar deg søke etter lignende eller lignende. Du kan lage funksjoner for å bruke setninger, setninger på andre data.
Moderne programmering har ikke vært et dogme på lenge, mendet faktum at syntaktiske konstruksjoner som er opprettet i løpet av de siste tiårene og akkumulert erfaring, åpner nye horisonter som ikke er forutsett av språkutviklere, gjenstår å oppdage og bruke.