Accesarea proprietăților unui obiect

Există două moduri de accesare a proprietăților unui obiect:

  • Notarea cu puncte
  • Notarea cu paranteze

Notarea cu puncte este folosită cel mai frecvent. Mai jos ne vom scufunda în fiecare dintre ele și vom descoperi unele dintre diferențe.

Notația Dot

Să ne uităm mai întâi la notația Dot. Luați în considerare acest exemplu de mai jos:

let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj.cat;console.log(sound);
// meow

Vreau să vă atrag atenția asupra celui de-al cincilea rând unde folosim notația punct: let sound = obj.cat;. Acesta este un exemplu de notație cu puncte. Puteți accesa proprietățile unui obiect prin specificarea numelui obiectului, urmat de un punct (punct) urmat de numele proprietății. Aceasta este sintaxa: objectName.propertyName;.

Când se lucrează cu notația cu puncte, identificările proprietăților pot fi numai alfanumerice (și _ și $). Proprietățile nu pot începe cu un număr.

Notația cu puncte este mult mai ușor de citit decât cea cu paranteze și, prin urmare, este folosită mai des. Cu toate acestea, există un al doilea mod de a accesa proprietățile unui obiect pe care ar trebui să îl cunoașteți. Se numește notație în paranteze.

Notație în paranteze

Iată un exemplu de notație în paranteze:

let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj;console.log(sound);
// meow

Din nou, atrageți atenția asupra celui de-al cincilea rând: let sound = obj;. Puteți accesa proprietățile unui obiect prin specificarea numelui obiectului urmat de numele proprietății între paranteze. Iată care este sintaxa: objectName.

Probabil că ați văzut notația în paranteze atunci când lucrați cu Array-uri. În exemplul de mai jos, vom accesa al doilea element din arr folosind sintaxa: arrayName

let arr = ;let letter = arr;console.log(letter);
// b

Dar notația în paranteze este utilă și atunci când se lucrează cu obiecte.

Când se lucrează cu notația în paranteze, identificatorii de proprietate trebuie să fie doar un șir de caractere. Aceștia pot include orice caractere, inclusiv spații. Se pot utiliza, de asemenea, variabile, atâta timp cât variabila se rezolvă la un String.

Aceasta înseamnă că există mai puține limitări atunci când se lucrează cu notația în paranteze. Acum putem avea spații în șirurile noastre și putem chiar să începem șirurile cu numere.

Poate cel mai important, acum putem folosi variabilele pentru a accesa proprietățile unui obiect. Este important ca variabila pe care o folosiți să facă referire la un String.

Aruncați o privire la acest exemplu de variabilă. S-ar putea să fie puțin confuz la început, așa că aveți răbdare cu mine:

let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj;console.log(sound);
// meow

Exemplul de mai sus este similar cu un exemplu anterior pe care l-am văzut deja. Principala diferență este că acum folosim notația în paranteze pentru a trece o variabilă. Fiți atenți, poate părea că noi căutăm proprietatea dog în obj, dar acest lucru nu este în întregime corect. dog este o variabilă cu o valoare de 'cat'. Din moment ce folosim paranteze, valoarea șirului de caractere este trecută și noi căutăm proprietatea 'cat'obj. Astfel, meow este înregistrată în consolă.

Mai jos, vom încerca să facem același lucru, dar cu notația cu puncte:

let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj.dog;console.log(sound);
// woof

Din start ar trebui să observați că primim înapoi woof. Acest lucru este foarte diferit de celălalt exemplu și se datorează faptului că nu putem folosi variabile cu notația punct. Încercarea de a căuta obj.dog va căuta de fapt doar valoarea șirului de caractere 'dog' în cadrul obiectului nostru, în loc să folosească valoarea variabilelor. Astfel, obj.dog returnează woof.

Recapitulare

Există câteva diferențe importante între notația cu puncte și cea cu paranteze:

Notația cu puncte:

  • Identificatorii de proprietate pot fi doar alfanumerici (și _ și $)
  • Identificatorii de proprietate nu pot începe cu un număr.
  • Identificatorii de proprietate nu pot conține variabile.
  • OK – obj.prop_1, obj.prop$
  • Nu este OK – obj.1prop, obj.prop name

Notația Bracket:

  • Identificatorii de proprietate trebuie să fie un șir de caractere sau o variabilă care face referire la un șir de caractere.
  • Este în regulă să folosiți variabile, spații și Șiruri care încep cu numere
  • OK – obj, obj

Mulțumesc pentru lectură! Dacă sunteți gata să învățați în sfârșit Web Development, consultați The Ultimate Guide to Learning Full Stack Web Development în 6 luni, pentru 30 de dolari. Dacă vreți doar să vă îmbunătățiți abilitățile de JavaScript, verificați: A Beginners Guide to Advanced JavaScript

Public 4 articole despre dezvoltarea web în fiecare săptămână. Vă rugăm să luați în considerare introducerea e-mailului dvs. aici dacă doriți să fiți adăugat la lista mea de e-mail o dată pe săptămână, sau urmăriți-mă pe Twitter.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.