Welkom terug.
Dus in de laatste paar video's die we hebben gesproken over javascript arrays, die de eerste gegevens structuur die we over hebben gesproken in de komende paar video's zijn.
We gaan een nother datastructuur noemde het object te introduceren.
Dus hebben we twee hoofddoelstellingen net zoals we deden met arrays.
We willen eerst begrijpen wat objecten zijn waarom we ze gebruiken.
Hoe gaan ze te vergelijken met een array.
En dan de tweede doelstelling is hoe doen we schrijven wat code met behulp van JavaScript-objecten.
Laten we ga je gang en aan de slag.
Dus hier is een hypothetische situatie.
Stel dat ik wilde een enkele persoon in javascript's te modelleren.
Ieder mens heeft een naam en leeftijd en een stad.
Dus er is een heleboel manieren ik kon doen, dat ik drie verschillende variabelen naam van de leeftijd en de stad, maar dan zijn ze niet gerelateerd aan elkaar kunnen hebben.
Ze zijn volledig gescheiden.
Dus als ik wilde om ze te verbinden Ik kon een array alsof ik hier aan het doen var persoon is gelijk aan matrix, waar het eerste item is de naam Cindy.
Het tweede punt is de leeftijd 32 en het laatste item is Missoula of de stad.
Dit is niet echt een groot gebruik van een array, omdat deze gegevens niet echt een lijst.
Ja, we kan forceren in een array, maar het leent zich niet tot het formaat van een reeks waar we lijsten die vaak een logische volgorde.
Er is niet echt een logische volgorde hier om de stad uit deze serie.
Ik zou moeten persoon beugel te schrijven.
En dat vereist me om te weten dat de stad is op index ook.
Dus als ik per ongeluk de volgorde om te keren en ik had Traviss de naam upfront index 0, maar dan meng ik deze twee omhoog.
Dus ik had op index 1 stad een leeftijd index 2.
Dan als ik probeerde om tot persoon beugel 2 Ik zou krijgen leeftijd in plaats van de stad.
Dus dit is allemaal gewoon om te laten zien dat een array is niet de perfecte oplossing voor elke situatie.
Er is veel beter datastructuur voor ons om hier te gebruiken die het javascript object.
U kunt een voorbeeld hier beneden van de manier waarop we de persoon array met de naam de leeftijd en de stad zou nemen en zet hem in een javascript-object.
Het eerste wat je zou moeten opvallen is dat we accolades in plaats van vierkante haken voor een serie.
De volgende belangrijke stuk is dat elk punt in dit object is een belangrijke waarde paar.
Dus we hebben een eigenschap Colan waarde naam is.
Leeftijd is 32 stad Missoula.
Deze slide toont precies hetzelfde.
We hebben een andere var persoon object persoon is gelijk aan accolades en binnen dat we het instellen van de naam te zijn Travis meerderjarig te zijn 21 in de stad om L.A. zijn hier beneden hebben we een eenvoudig schema van wat deze datastructuur eruit ziet.
We hebben drie verschillende sleuven in dit object en het is echt belangrijk op te merken dat de objecten hebben geen gebouwd om in tegenstelling tot een serie waar er een eerste punt en een tweede punt en een derde punt.
Denk aan de items in plaats van een bepaald object als gewoon rondzweven binnen, indien er is er niet een bestelling.
Geen eigenschap komt op de eerste of tweede maakt het niet uit hoe ik ze in welke volgorde ze zijn allemaal hetzelfde behandeld verklaard.
Dus dit diagram toont ze in een orde, maar dat is alleen maar omdat ik moest een bestelling halen.
Zodat u kunt zien Travis wordt opgeslagen onder de sleutel naam.
21 wordt opgeslagen onder de sleutel leeftijd.
En L.A. wordt opgeslagen onder de sleutel stad om data uit van een object op te halen.
We hebben twee keuzes.
We kunnen gebruik maken van de naam van het object persoon vierkante haken en vervolgens de naam van de sleutel.
Dus in dit geval ben ik het krijgen van Travis van de persoon object.
Dus ik juiste persoon vierkante haakjes naam tussen aanhalingstekens.
Dus dat is zeer vergelijkbaar met arrays.
Het enige verschil is dat dit geen getal.
Dit is een string.
De andere optie is het gebruik van puntnotatie puntnotatie is een beetje korter en eenvoudiger.
Rechts Person dot naam en de naam moet uiteraard overeen met de naam van de sleutel en dat zal ons ook Travis.
Ik ga om verder te gaan en aan te tonen dat in de con ..
Ik ga een nieuw object met de naam de hond te maken en mijn hond gaat om een ​​naam eigenschap hebben zoals altijd.
Rusty Hij is de beste hond en half ras.
Hij is een straathond Lassally leeftijd en hij is drie.
Dus dat geeft me mijn object hond.
En als we kijken naar het in de console zie je het vertelt me ​​dat het een object.
Uw naam is Resti ras modder leeftijden 3.
Dus als ik wil toegang krijgen tot zijn leeftijd van de hond object kan ik de eerste intact hond doen en dan tussen aanhalingstekens leeftijd krijgen ze drie of ik kan hond dot leeftijd te doen en ik ook drie.
Het is aan jou om een ​​van beide te gebruiken.
Ik geef de voorkeur aan de hond hond leeftijd te gebruiken, want het is korter.
Je hoeft niet naar de aanhalingstekens te gebruiken.
U hoeft geen dubbele beugels moeten aan beide zijden.
Je moet het gewoon.
Er zijn enkele verschillen op deze dia.
Ik tonen drie van de belangrijkste verschillen.
Dus je kunt niet gebruiken puntnotatie als het pand begint met een nummer.
Zo kunt u dat hier ziet een object op DOT één blah is niet geldig.
Maar als ik had een eigenschap genaamd One blah ik zou moeten vierkante haken gebruiken en zet het tussen aanhalingstekens en dat is gewoon de manier waarop het is opgezet in javascript.
Ik ga naar beneden te springen naar de derde voorbeeld hier en dat is dat je puntnotatie niet kunt gebruiken als uw eigendom naam heeft een ruimte in het als fav kleur.
Uiteraard is dit het werkt niet.
Javascript denkt dat we de toegang dot fav Dus als we willen een woning met de ruimte die niet echt een goede praktijk toch maar als we wisten we zouden moeten aanhalingstekens te gebruiken.
Fav.
Space kleur met vierkante haakjesnotering.
En dan is de middelste voorbeeld laat zien dat je kunt opzoeken wat er met behulp van een variabele.
Als u gebruik maken van haakjesnotering.
Dus als ik een variabele hier genaamd touw of als TR En het is gelijk aan de naam tussen aanhalingstekens als ik probeer en doe wat object als TR Het zal gewoon op zoek naar de woning als TR Maar als ik doe wat square bracket object als TR Het gaat om evalueren TR die ons naam geeft tussen aanhalingstekens.
Dus dit zal dan kijken de eigenschap name in sommige object.
Dus dit is iets wat we ook daadwerkelijk af en toe zien.
Dus het is de moeite waard wetende dat het verschil hier.
U kunt vierkante haakjesnotering gebruiken met behulp van een variabele naam op te zoeken van een woning.
Het volgende dat we willen doen is in staat om informatie bij te werken binnenkant van een object.
Dus het is zeer vergelijkbaar met arrays, waar we toegang tot de gegevens en ken deze vervolgens met een gelijk teken.
Dus hier je kunt zien hebben we onze dezelfde persoon zijn naam object als Travis leeftijd is 21 stad is L.A. Als ik wil een toe te voegen aan Traviss leeftijd het is zijn verjaardag.
Alles wat ik moet doen is toegang leeftijd.
Ik kan haken of puntnotatie gebruiken en vervolgens opnieuw toewijzen.
Dus persoon leeftijd plus is gelijk aan 1.
Dus dat zal een persoon toe te voegen die leeftijd nu 22 of ik kan iemand gebruik dot stad en toewijzen die naar Londen zijn.
Dus persoon up stad is gelijk aan Londen zal nu ingesteld persoon in de city van Londen.
Dus gewoon om aan te tonen dat.
Laten we teruggaan naar onze hond object dat naam als Rusty fokkers straathond heeft te gaan.
Leeftijd is drie.
Rusty had net een verjaardag, dus ik ga naar zijn leeftijd hond te veranderen.
Leeftijd is gelijk aan en ik kon dit doen is vier die net gaat om het vier niet uit wat en ik kan kijken hond.
Of ik kon hond te doen.
Leeftijd plus gelijk aan één die net zal toevoegen ene naar de bestaande leeftijd en dat geeft ons vijf.
Ik zal ook laten zien dat het doen met het kwadraat haakjesnotering.
Laten we zeggen dat ik wil de naam Rusty's te veranderen aan zijn bijnaam Tater zijn.
Ik zou hond vierkante haak naam te schrijven en dat alleen geeft me Resti en dan zal ik het opnieuw toewijzen aan Tator zijn.
En als je kijkt naar de hond die we nu hebben genoemd Tator bevrijd op de leeftijd van 5.
Er zijn een paar verschillende manieren om het initialiseren van objecten net zoals we zagen met een race, dus we kunnen ofwel een leeg object voor het eerst dat we hier hebben.
Var persoon is gelijk aan lege accolades en dan kunnen we de gegevens toe te voegen na het feit.
Een stuk op een moment.
Persoon naam is Travis persoon die de leeftijd van 21 persoon die stad is L.A. kunnen we het allemaal in een keer en dat is wat we tot nu toe hebben gezien heet object letterlijke notatie doen.
Tot nu toe zijn persoon is gelijk aan en dan binnen de accolades ik schrijf gewoon mijn eigendom naam Travis leeftijd gesprek en 21 stad Colan L.A. en de laatste manier die je niet vaak ziet pas veel later in javascript.
Hij zei dat ik kan het nieuwe object dat een functie is net als een nieuwe array die ons een nieuw object te maken en terug te sturen naar ons als een leeg object gebruiken.
En dan kan ik persoonsnaam persoon niet de leeftijd toe te voegen in de persoon van de stad.
Dus zul je zeker veel vaker zie deze syntaxis en deze syntax voor nu.
Een ander punt dat ik zou willen maken over objecten is dat net als arrays kunnen ze elke vorm van gegevens bevatten.
Dus onze data kunnen getallen of strings of booleans een array zelfs een ander object zoals je hier kunt zien.
Net zoals we arrays kunnen mixen en matchen zoveel als we zouden willen.