3 veci, ktoré neviete o poliach JavaScript
poľa sú široko používanou funkciou programovacích jazykov; oni sú špeciálne premenné ktoré je možné použiť na ukladanie viacerých hodnôt súčasne. Avšak, pokiaľ ide o JavaScript, tak jednoduché, ako sa učiť, je tu stále viac skúmaných.
V tomto príspevku sa budeme zaoberať tromi menej známymi, ale dôležitými funkciami súborov JavaScript, ktoré ste predtým nevieli.
1. Pridajte vlastné vlastnosti do polí
Ak by ste mali vyčistiť internet, ktorý hľadá dôkladnú definíciu poľa JavaScript, zistíte, že takmer každý zdroj bez zbytočného zoznamu ukáže pole ako to, čo naozaj je, objekt.
V skutočnosti sa takmer všetko, čo sa zaoberáme v jazyku JavaScript sa ukázalo ako objekt. Existujú dva typy dátových typov v jazyku JavaScript, primitíva a objektov, ale primitiva sú vždy zabalené vo vnútri objektov.
Array, Function, Date, etc. sú preddefinované objekty jazyka JavaScript ktoré majú vstavané metódy, vlastnosti a vlastnú štandardizovanú syntax.
Môžu mať pole JavaScript tri rôzne typy vlastností:
- Indexy poľa sú tiež vlastnosti
- Zabudované vlastnosti
- Vlastné vlastnosti môžete pridať sami
Prvé dva sú viac známe, môžete ich používať každý deň, ale poďme sa s nimi rýchlo pozrieť skôr, ako sa skočíte do toho, ako môžete pridať vlastnú vlastnú vlastnosť do poľa.
Indexy ako vlastnosti
Polia JavaScript používajú štvorcovú konzolu syntax, ako napr var ary = ["oranžová", "jablková", "lyčia"];
.
Indexy prvkov poľa sú v podstate vlastnosti kde názvy vlastníctva sú vždy negatívne celé čísla.
indexový prvok pár poľa je podobné ako pár kľúč-hodnota objektu.
Indexy sú jedinečnou vlastnosťou objektu Array a na rozdiel od ostatných zabudovaných vlastností môžu byť nastavte iba syntaktické rady zátvoriek, ako napr ary [3] = "broskyňa";
.
Vstavané vlastnosti
Polia majú tiež vstavané vlastnosti, ako napr Array.length
. dĺžka
vlastnosť nesie celočíselnú hodnotu označuje dĺžku poľa.
Vo všeobecnosti sa zabudované vlastnosti často nachádzajú v preddefinovaných objektoch jazyka JavaScript, napríklad v poliach. Spolu s vstavanými metódami pomáhajú prispôsobiť všeobecné objekty tak, aby boli objekty vhodné pre rôzne potreby.
Vstavané vlastnosti môžu byť prístupné buď s object.key
alebo objekt [ "kľúč"]
syntax. Takže môžete tiež písať ary [ "dĺžka"]
na prístup k dĺžke poľa.
Vytvorte vlastné vlastnosti pre objekt Array
Teraz, poďme sa rozprávať pridanie vlastných vlastností do polí. Polia sú preddefinované objekty, ktoré uchovávajú rôzne typy hodnôt na rôznych indexoch.
Obvykle nie je potrebné pridávať vlastné vlastnosti do poľa; to je jeden z dôvodov, prečo sa zaučujú o tejto funkcii začiatočníci. V skutočnosti, ak chcete zaobchádzať s poľom ako normálny objekt pridaním párov kľúč-hodnota, môžete to tiež dobre použite bežný objekt pre svoj účel. Ale to neznamená, že nie špeciálnych prípadoch kde môžete využiť skutočnosť, že pole je objekt, pridaním jedného alebo viacerých vlastností.
Môžete napríklad pridať vlastnú vlastnosť do poľa identifikuje "druh" alebo "triedu" jeho prvkov, ako to vidíte v nižšie uvedenom príklade.
var ary = ["oranžová", "jablková", "lyčia"]; ary.itemClass = "ovocie"; console.log (ary + "sú" + ary.itemClass); // "oranžová, jablková, líči sú ovocie"
Všimnite si, že vlastní vlastnosť, ktorú pridáte do poľa, je enumerable, čo znamená, že bude odobratá slučkami, ako je napr pre ... v
výkaz.
2. Slučka cez elementy poľa
Pravdepodobne hovoríte "viem, že už", čo je s najväčšou pravdepodobnosťou pravda, už viete, ako prejsť prvky poľa. Ale je tiež pravda, že hovoriť "slučka cez pole prvky" je trochu abstraktné, ako to, čo sme skutočne slučky sú indexy poľa.
Vzhľadom na to, že indexy polí tvoria len negatívne celé čísla, opakujeme celočíselnú hodnotu zvyčajne začínajúcu od nuly a končiaca po celej dĺžke poľa, potom použite túto iterovanú hodnotu na prístup k elementu poľa na danom indexe.
Avšak od ECMAScript6 existuje spôsob priamo prepojiť hodnoty poľa bez obťažovania s indexmi, a to môže byť vykonané pomocou pre ... z
slučka.
V poli, pre ... z
slučka bude prechádzať elementmi poľa v poradí indexov, inými slovami, bude sa starať o iteráciu nad indexmi a získanie existujúcu hodnotu poľa na danom indexe. Táto slučka je ideálna, ak chcete jednoducho prechádzať cez všetky elementy poľa a pracovať s nimi.
var ary = ["oranžová", "jablková", "lyčia"]; pre (nechajte položku ary) console.log (položka); // "oranžový", "apple", "lychee"
Pre porovnanie, s pravidelnou pre
smyčok, získame indexy namiesto hodnôt ako výstup.
var ary = ["oranžová", "jablková", "lyčia"]; pre (var položka = 0; položka < ary.length; item++) console.log(item); // 0, 1, 2
3. Počet prvkov nie je jeho dĺžka
Typicky, keď hovoríme o dĺžka poľa, myslíme si, že je to buď počet hodnôt, ktoré pole drží, alebo dĺžku, ktorú sme do poľa zadali ručne. V skutočnosti však závisí dĺžka poľa najväčší existujúci index vo vnútri.
Dĺžka je a veľmi flexibilná vlastnosť. Či už ste už predtým stanovili dĺžku poľa alebo nie, ak pridáte hodnoty do poľa, jeho dĺžka neustále rastie.
var ary = []; dĺžka = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); 6
V príklade vyššie môžeme vidieť, že som dal indexu iba jednu hodnotu v indexe 5 a dĺžka sa stala 6. Teraz, ak si myslíte, že pridaním hodnoty do indexu 5 pole automaticky vytvorilo indexy 0 až 4 , potom Váš predpoklad je nesprávny. Naozaj existujú žiadne existujúce indexy od 0 do 4 v tomto poli. Môžete to skontrolovať pomocou v
operátor.
var ary = []; dĺžka = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 console.log (0 v ary); // false
Pole ary
je to, čo nazývame a "riedke" pole, pole, kde indexy nie sú vytvorené nepretržite, a mať medzery. Opakom "riedkeho" poľa je "husté" pole kde sú indexy v poli nepretržite a počet prvkov je rovnaký ako index dĺžka
.
dĺžka
majetok je tiež schopný skrátenie poľa, že najvyšší index prítomný v poli je vždy menej ako ona sama, ako dĺžka
je vždy číselne väčší ako najvyšší index v predvolenom nastavení.
V nižšie uvedenom príklade môžete vidieť, ako stratíme prvok v indexe 5 zmenšením dĺžka
z ary
rad.
var ary = []; dĺžka = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); 6 ary.length = 2; console.log (ary.length); // 2 konzola.log (ary [5]); // undefined
Ďalšie čítanie
- 10 termínov jazyka JavaScript, ktoré by ste mali teraz vedieť
- 4 nie-tak-obyčajné, ale užitočné Javascript vyhlásenie by ste mali vedieť
- Optimalizácia kódu pomocou nástroja JS Hint - nástroj na lustovanie jazyka Javascript