Transcrições
1. Introdução de curso - Arrays: Habilidade bem-vinda, digamos alunos para outra classe. E esta aula é super, super excitante. Se você tem me seguido junto em minhas outras palestras e outras aulas, ótimo, se não menos, telefone para. Esta cláusula é quase uma classe autônoma. Você pode olhar para ele isoladamente. Mas é claro que eu sempre recomendo que você passe por toda a série porque nós cobrimos muito quando se trata de JavaScript. Esta é a coisa importante que você precisa entender. Quando se trata de programação. O que é isso? Com o que você trabalha como programador? É apenas filha quando trabalhamos com pontos e obtemos diferentes tipos de dados. E é por isso que uma das classes anteriores, falamos muito sobre isso e descobrimos que na programação em JavaScript, filha pode ser dividida em dois tipos. Você tem tipos básicos de dados ou primitivos. E ele tem tipos de dados complexos, também conhecidos como objetos, quando se trata de JavaScript. E matrizes se encaixam no tipo complexo de categoria filha. E como você verá na palestra, arrays são na verdade um tipo de objeto em JavaScript. Então colide, o que são arrays e por que precisamos deles? Nós, sempre que você quiser armazenar uma coleção de filha, você normalmente usa arrays. Lembre-se que já vimos variáveis, mas as variáveis só podem conter um valor. Arrays podem conter uma coleção de valores. E isso é extremamente útil para nós ao construir camas de maneira. Quais são alguns exemplos? Bem, se ele tinha um site de compras e as pessoas adicionam itens hoje, pegou todos os itens que editam o código, como é que os instalamos? Vote instalado com um array. E se você estiver criando o back-end para um usuário administrador? Puxe todos os membros do seu site podem ser armazenados em uma matriz. Há muitos, muitos exemplos e tenho certeza que você pode ver, e é muito, muito importante dominar. E é disso que se trata esta classe, matrizes e loops. E nós não só falamos sobre arrays, mas também olhamos para exemplos. Nós olhamos para quais métodos JavaScript nos dá em matrizes diretamente fora da caixa. Os métodos não têm push, pop, slice, cetera, et cetera, dentro do portão. Um pouco mais avançado, discutimos os diferentes tipos de métodos entrariam em arrays. Métodos mutadores negros empurrar, por exemplo, é um método mutador, irradiar métodos de acesso. Fatia, por exemplo, é um método de acesso. E então obtemos métodos iteradores. E a função de mapa é um exemplo de um método iterativo e categoria compreendida. Estes métodos iterativos, isso é extremamente importante porque isso nos permite percorrer a corrida. E como eu tenho certeza que você pode ver quando temos uma coleção de dados torna-se muito importante para nós para loop através dessas matrizes. E se você estiver em um site e quiser classificar por preço ou classificar por data listada. Você pode dizer o quão importante é para o nosso código para olhar através de toda a nossa coleção procurada através deles. Este é apenas um exemplo, a propósito, mas você pode ver como é importante discutir loops. E isso também é o que fazemos nesta cláusula incrível. Discutimos loops e discutimos o tradicional para loop, que a maioria de nós já conhece. Mas não se preocupe se você não discutir o loop for in. E então discutimos minha opinião muito loop licitante. E isso é o para de loop. Então, realmente esta classe está cheia de informações úteis. Eu realmente não posso esperar. E, por favor, fique comigo. Café mais grandioso. Gregory Bull, seja lá o que for. E vemo-nos em McCloskey, adeus amigos.
2. O que é uma matriz?: Percorremos um longo caminho. Aprendemos sobre objetos e como estamos começando a ficar cada vez mais avançados? Você vai ter que entender arrays quando você vem para a programação. E eu gosto de pensar em uma matriz é uma variável que armazena vários valores em. Quero enfatizar a palavra valores múltiplos. Vamos ver em breve o que quero dizer com múltiplos valores. Mas antes disso, como identificamos um array? Um objeto sempre pode ser identificado pelos colchetes, matrizes de intimamente relacionados a ele. E você pode identificar uma matriz com colchetes. E dar um passo para trás. Lembre-se de quando estávamos discutindo tipos de dados em JavaScript, os dois tipos filhas, estes primitivos, que é apenas uma palavra extravagante para coisas simples como strings, números, booleanos, nulo, indefinido, e até mesmo montar. Esses são todos tipos de dados simples. Mas então nós também temos o objeto, que é tipos de dados complexos. Embora tudo em JavaScript seja praticamente em objetos para o nosso bem, é sempre bom quebrá-lo e ir, ok, legal. Temos objetos que conhecemos. Nós também temos arrays e nós também temos outras funções. E esses são o segundo tipo de tipos de dados em JavaScript. Ok, então colocando isso de lado e você meio que sabe, apagar comida entra em um tipo filha de JavaScript. Mas eles são apenas um tipo especial de objeto. E eu vou provar isso para você. Vamos dar uma olhada. Uma matriz é apenas um objeto. E lembre-se de como ele disse para identificar uma matriz ou criar uma matriz, você tem que ter colchetes. Os objetos são colchetes. Lista encontrar uma matriz, deixe uma igual abrir e fechadas colchetes. É isso. Criamos morena. E para mostrar a vocês que esta matriz é realmente um objeto, nós podemos apenas ir tipo de um o ansioso para um objeto. E lembre-se de semear uma matriz como uma variável que pode armazenar vários valores. Bem, como trabalhamos com pedaços de dados? Por exemplo, vamos tomar um cenário muito fácil. Digamos que temos os números 1357. Como vamos enrolar isso? Podemos guardá-lo como uma corda? Bem, acho que podemos, podemos escrever. 1357. Isso é apenas constrangedor. E se quiséssemos juntar os números? E se quiséssemos extrair apenas os cinco e deixar o 137? Não podemos fazer isso com cordas, podemos? É constrangedor. Parênteses, muito difícil. As imagens mostram agora um exemplo rápido de trabalhar com números em uma matriz. Então, como armazenamos números do que é a melhor maneira? Porque as cordas são estranhas. Então vamos definir um array e vamos chamá-lo de números. Por falta de uma palavra melhor. E nossos números são 1357. Como criamos uma matriz chamada números. Deixa, é assim que é fácil. E se consolarmos números de registro e abrirmos, e você pode realmente ver o console nos dizendo sobre os quatro elementos nesta matriz. Podemos abri-la e ver que são algumas coisas que vale a pena notar aqui. Uma é, esta matriz tem uma propriedade de comprimento mágico. De onde eles vêm? Vamos ver em breve, não se preocupe. segunda coisa que vale a pena notar é que os pares de valor de chave aqui, essas chaves começaram o número 0, y. é que tudo que você tem que pensar sobre os números de palavras que
criamos o como uma referência a um local de memória. E se escrevermos números 0, todas as dívidas tentando fazer é fazer referência a um local na memória que é x elementos de distância do ponto de referência. Sim, vimos que o ponto de referência é 0. Então está tomando o primeiro elemento achado na memória. Então, desta forma, o índice, esses números 0123, aqueles são usados como um deslocamento. E em nosso exemplo, o primeiro elemento na matriz, o número um, com uma chave de 0. É x elementos longe de seu ponto de referência, é por isso
que quando digitamos números, ele deve nos dar um porque estamos literalmente apontando para o mesmo local de memória. Os dados armazenados em. Espero que ele está fazendo manchas vai começar a ver muito mais exemplos disso mais tarde. Vamos seguir em frente. Então, acabamos de ver matrizes são estruturas de dados que tomaram vários valores. As matrizes não têm pares de valor de chave. Eles têm dados singulares. Mas o que é legal é que arrays são objetos. Assim, eles também podem conter objetos. E vimos matrizes são um tipo especial de objeto. Mas uma diferença é que as matrizes têm uma propriedade de comprimento mágico. O primeiro valor na matriz é armazenado sob a chave 0. E lembre-se, quando olhamos para o modelo de objeto JavaScript onde a especificação de scripts ECMO define um objeto é apenas uma referência, apenas um dicionário onde você tem as chaves e
essas chaves apontam para atributos de uma propriedade. Bem, é o mesmo com matrizes. Deixe-me mostrar-lhe um exemplo. Então vamos olhar para o modelo de matriz. Como o mecanismo trata um array? De onde vem esta propriedade de comprimento? Bem, vamos definir uma matriz que contém apenas um valor e esse valor é a letra a. Então temos uma matriz, os raios chamados litros. Ele tem duas propriedades, um comprimento, e tem uma chave,
e a chave começa em 0, e eles apontam para atributos de propriedade. A propriedade length tem um valor de um, mas é inúmeras e configuráveis propriedades ou search to false porque isso é embutido em JavaScript. Não devemos perder o ambiente e reconfigurá-lo. A chave de 0 aponta para o valor a e que tudo tem os locais
verdadeiros padrão leva nosso array e vamos empurrar b para ele. O que acontece em? Bem, agora você vai ter uma chave extra. Você vai ter um. Isso apontará para um valor b. E o comprimento e a chave de 0, exatamente as mesmas coisas que antes. Espero que isso esteja começando a se tornar mais intuitivo para você. Não se preocupe muito. Eu sei que isso é um pouco teórico porque isso é o que o motor e isso é o que as matrizes e objetos estão fazendo em segundo plano. Muita gente não entende isso, mas vai te ajudar. Então vamos seguir em frente. Deixe-me mostrar-lhe mais alguns exemplos.
3. Como criar uma matriz?: E assim como com objetos, eles não são apenas uma maneira de criar uma matriz,
mas, em geral, nós apenas olhamos para duas maneiras de criar uma matriz. Nós olhamos para um array literal, e isso é apenas usando abrindo e fechando colchetes. E a segunda maneira é usar um construtor de matriz. E sim, vamos usar a nova palavra-chave Day também. Vamos dar uma olhada em alguns exemplos. Que melhor maneira de aprender, então? Exemplos? Então vamos começar a olhar para as diferentes maneiras de criar arrays. Então, primeiro vamos usar a matriz literal, e esta é a maneira mais fácil de criar uma matriz. E o array mais simples é um, um para array. E se consolarmos o log AR dois, você pode ver que temos um array. Quão fácil é isso? Nós também podemos criar uma matriz com valores. Então vamos definir uma variável chamada animais, e é definido valores diferentes, cão, gato e um rato. E se nós conectarmos isso para a captura de tela e tivermos que usar o registro do console neste caso, eu posso digitar animais e lá vamos nós. Nós fomos à matriz com cão, gato e rato. E lembre-se de como dissemos que uma matriz é um objeto. E fomos mais longe dizendo que você pode até colocar objetos dentro de uma matriz. Vamos mostrar um exemplo disso. Então vamos chamar o nosso povo aqui. E lembre-se, com uma matriz, você tem que ter um colchete de abertura e fechamento. E agora queremos colocar objetos nesta matriz. Como definimos um objeto? Isso mesmo com chaves encaracoladas? E digamos que o nome é igual a um. E vamos fazer outro. Vamos chamar este de John. E vamos fazer mais uma e chamá-la de Cindy. E se consolarmos as pessoas, lá vamos nós. Você pode ver que é uma matriz porque está entre colchetes. E tem esses objetos dentro dele. Ok, isso é um array literal. Vamos ver agora construtor de matriz. E com o construtor de matriz, você tem que usar JavaScript construído em objeto
matriz e você tem que chamá-lo com a nova palavra-chave. Deixa-me mostrar-te o que quero dizer. Então, vamos definir casa e usar o editor construtor. Agora você só precisa colocar os valores neste construtor. Chame de três quartos, cor vermelha, e tem três banheiros. Se consolarmos isso, devemos ver um array com opinião fechando colchetes com esses locais dentro dele. Ele tem dias casa e precisa da abertura, fechando colchetes e, em seguida, os valores nele, exatamente como seria de esperar. Mas usar o construtor de matriz pode causar resultados estranhos. Deixe-me mostrar-lhe um exemplo. Se você queria fazer uma série de números, é bem simples. E os índices de matriz têm números 510. E se nós consola logar isso, eu esperaria ver uma matriz com valores 510. Você tem isso. E nós vemos isso neste caso. Mas se quiséssemos que ele tivesse um array com um número que causa resultados estranhos. Dê uma olhada nisso. Então digamos que temos um novo array chamado figuras, e queremos que seja o número sete. Se nós registrarmos isso no console, o que você esperaria ver? Lote esperar ver na matriz com apenas o número sete. Mas, neste caso, vai nos dar algo diferente. Vai dar-nos uma matriz vazia com sete pontos vazios. Quero dizer, números. E a cabeça é, não nos deu o que esperávamos. Então, para mim, eu apenas tendem a usar a abordagem literal da matriz. É muito intuitivo, muito fácil. Como eu disse, nunca há uma maneira certa de fazer algo em JavaScript. Há tantas coisas diferentes que você pode fazer. E, dependendo da sua situação, você pode querer usar um ou outro.
4. Exemplo de matriz: A melhor coisa é com essas coisas é apenas
continuar com exemplos porque então você começa a se sentir mais intuitivo em torno dele e você começa a ficar mais confortável em torno deste conceito de arrays. Então vamos entrar nisso. Permitam-me que vos dê um exemplo prático. Digamos que temos uma lista de compras e queremos adicionar a ela, queremos excluir coisas da matriz. Queremos acessar um propriedades vinculadas. Como iríamos fazer todas essas coisas? Vamos dar uma olhada. Bem, a primeira coisa é criar uma ShoppingList. E em água mais fria, o que você quer, vamos chamar de lista de compras. E vamos fazer as necessidades. Mlk criado via. Se nós consola logar isto. Deixe-me começar o Walker. Você tem a nossa matriz é a multivariada b-a. E se quiséssemos acessar propriedades na matriz? Bem, podemos acessar essas propriedades com colchetes. E inicialmente dizemos que queríamos acessar o MLK. Vamos registrar o console ShoppingList. Abra, feche colchetes. E lembre-se, temos excessos na memória. E vai ser no ponto de partida, que é 0. E isso nos dá MLK. Se quiséssemos acessar via, o que faríamos? Isto, certo? Colocamos dois que nos darão b-a. E com arrays, também podemos substituir valores com muita facilidade. Leva sobre valores i. Isso é X é nossa ShoppingList. Em vez de MLK, é do Kirk. Agora, se consola matriz logotipo que é substituído MLK Woodcock. E quanto ao acesso à propriedade length? E se quiséssemos adicionar elementos a esta matriz? Se de repente nos lembramos, ei, eu também preciso comprar papel higiênico. Ou se não quisermos mais comprar cerveja e quisermos nos livrar disso. Como iríamos fazer isso? Bem, deixa-me mostrar-te alguma equidade. Deixe-me apenas abrir o console e olhar para isso em irradiar recriar. Vamos apenas criar a matriz numérica. Certo, pode ser uma matriz vazia. Se consolarmos logar isto e abrirmos esta coisinha aqui, e sairmos do protótipo. Disseste-nos que podias dizer que temos existência. Temos acesso ao método pop e ao método push. E deixem-me dar-vos exemplos do que se passa. Agora, vamos voltar ao nosso IDE. Vamos encaminhar a propriedade length. Como é que fazemos isto? Bem, você verá se voltarmos para o console, você verá aqui que nós realmente temos uma propriedade de comprimento teria medicamente neste array, em qualquer array que criamos. Temos essa propriedade diretamente. Então, se voltarmos ao nosso IDE, podemos acessá-lo, gera log do console, lista de compras e seu acesso aos produtos vinculados. Três, temos três itens na RA, faz sentido. Leite, pão e cerveja. O caso da Mona, Coca-Cola, pão e cerveja. Vamos agora adicionar um item à nossa ShoppingList. Como faríamos isso? Bem, matrizes têm um método embutido chamado push em JavaScript, e literalmente empurra um item para a matriz. Vamos Xis são uma lista de compras. Vai ter um método de push nele. E você pode ver que meu IDE já me diz que a intimação é um novo elemento para matriz, e ele retorna um novo comprimento da matriz. Então vamos empurrar papel higiênico em nossa matriz. Agora, se consolar esta lista de compras de arte, e lá está você de novo. Mas agora digamos que cometemos um erro e temos papel higiênico suficiente, queremos isso fora hoje. O que vamos fazer agora? Vamos pesar copo vem para cima. Vamos remover um item da matriz. Novamente. Vamos sair da nossa ShoppingList. Agora queremos estourar. Neste método pop resíduos, remove o último elemento da matriz, que no nosso caso é o papel higiênico. E agora, se nos conectarmos a nossa lista de compras, papel
higiênico não pode ser visto. Óptimo, espero que estejas a divertir-te que esta argamassa assenta nisto, vamos entrar nisto.
5. Introdução ao mutador iterador: Lembre-se de como quando criamos um array, ele veio automaticamente com um monte de propriedades e métodos anexados automaticamente. Lembre-se que tínhamos o pop e tivemos que empurrar e tínhamos o comprimento. Bem, deixe-me apenas dizer que os métodos de matriz podem ser agrupados em três grandes categorias. E é muito importante para você distinguir entre ele. Caso contrário, você pode estragar seu código e sua filha. Assim, as três grandes categorias ou mutador, acessor e iteradores, métodos
mutadores ou aqueles que mutam alterarão a matriz original. Portanto, tenha muito cuidado ao trabalhar com métodos mutadores, porque o que você faz nessa matriz afetará a matriz original. Você tem acesso emitido, e eles não alteram a matriz, não mutam a matriz original em apenas cria uma cópia. E então você pode trabalhar com essa cópia e extrair e fazer com essa cópia como quiser. E então finalmente você tem iteradores. Então, grande parte do tempo com ponto, realmente querendo percorrer esse ponto, você
está querendo extrair certos valores e exibi-lo para o usuário? É aí que os iteradores entram na foto. Vejamos exemplos de todos esses três tipos de métodos rapidamente.
6. Mutador de iterador: Temos três grandes categorias de métodos em matrizes. Vamos dar uma olhada em um exemplo de cada um deles. Então, como acabamos de fazer na palestra, vamos olhar para métodos de mutação. E lembre-se que esses métodos alteram a matriz original. Então vamos criar uma matriz de números frios deliciosos por falta de uma palavra melhor. E vamos ter 51015 nessa matriz. E vamos usar o método push. O método push é um método mutante e empurrou o número 20 em nós. São números de registro do console, empurre. E ele diz aqui no meu IDE está realmente me
dando acuidades que retorna o novo comprimento da matriz. E empurrou o número 20 para isso. Agora a matriz vai ter comprimento quatro. Portanto, não consola log números ímpares. Ele vai ter quatro números agora que afetou a matriz original real. Muito. Outro exemplo, vamos trabalhar com cores. Digamos que cores originais de azul e verde. Mas digamos que alguém aparece e quer criar um minuto de cores, mas eles querem começar com essas cores como o ponto base. Senhor, digamos que isso aconteça. E eles querem usar o ponto de partida original, mas querem empurrar outra colônia, RED. Agora, quando um registro de console original, inesperado só ver azul e verde. E eu tenho certeza como você adivinhou, quando uma cerveja pontos realmente leu agora. Então, com esta mutação, com este método push afeta a taxa original. Apenas tenha cuidado com isso porque você pode perder os dados
originais que você não pretendia fazer. Outro método é xy submetido. Vamos dar uma olhada nisso agora. Rápido, copie este recurso. Teria que digitar de novo. E sendo preguiçosos e maliciosos chamadores, acessadores e saídas emissores são bons porque nos permite não manipular a matriz original, que cria uma cópia da matriz original e, em seguida, manipula esse crepitar. Então dê uma olhada. Sim, vamos definir uma matriz de nomes. E diz John, ALI. E Cindy. Agora um, X é um método disponível para nós conhecido como slice. E slice apenas retorna uma parte especificada da matriz. Vou te mostrar o que quero dizer agora. Digamos que cópia é igual a nomes. Essa é a nossa matriz original. Queremos acessar um método de fatia. E você pode ver minhas identidades já nos dizendo quais são os dois argumentos. O início é o início de uma porção especificada
da matriz e o fim que especifica quando eles são re, precisa terminar. Então vamos voltar, dizer que queremos voltar só Wally e Cindy. Não queríamos envolver John em tudo isso. Então aqui podemos começar em um e terminar em três. Agora, se nós conectarmos isso, nós temos Wally e Cindy. Como chama eles. Mas quero dizer, se nosso console registrar nomes, nomes mantiveram sua forma original de ter três pessoas nele. É um método de acesso. Qual método iterador inferior? método iterador, como vemos, ele apenas itera através de uma matriz e permite que você faça coisas com um certo valor cada vez que ele itera através dessa matriz. Porque isso é um pouco cheio de boca. Mas, novamente, é muito mais fácil de entender com um exemplo. Então vamos dar um exemplo aqui de um método iterador. E um muito popular que todos vocês vão usar e provavelmente até mesmo fazer uma seção inteira sobre ele, se não uma seção inteira de forma diferente, um ou dois episódios completos é o método do mapa. Agora há muito que podemos falar com os homens. Os métodos do mapa não vão fazer isso. Sim, vou mostrar-vos brevemente como
funciona e o que significa um método iterador. E vamos criar uma série de animais. E digamos que temos um cão e um gato. Não quero demorar muito. E agora eu só quero criar um iterado, um iterador animal. Vamos chamá-lo de iterador animal. E nós vamos acessar nosso, nosso array original e vamos usar esse método de mapa. Ok. E como você pode ver no meu IDE, este mapa emitido chama uma função de retorno de chamada em cada elemento de uma matriz. E por elemento de uma matriz nós apenas dizendo que o cão e o gato neste caso, esses são chamados de elementos. Então, uma função vai ser chamada de devolver um cão e devolver um gato, et cetera, et cetera. Não se preocupe com as funções de retorno de chamada ainda vamos entrar nessas coisas mais tarde. Assim, o primeiro argumento neste método de mapa é a função de retorno de chamada. Você pode até ver que MID, ele está me dizendo. E vamos definir uma função de retorno de chamada que leva o elemento, que no nosso caso é um animal. É um tipo de animal. E então vamos fazer algo com esse tipo de animal. Então, no nosso caso, vamos apenas console log declaração que é usado literais modelo. E digamos, eu não sei, estamos lidando com um. E então você pode literalmente pegar aquele animal e olhar para o que acabou de acontecer. Você pode ver que o console diz que estamos lidando com um cachorro, estamos lidando com um gato. Então é isso que o método do mapa faz. Ele leva cada elemento de sua matriz. Então, na primeira iteração, no primeiro loop, ele vai levar cão. Vai colocar o cão naquela função de retorno. E vai nomear isso. Vai colocar aquele cão numa variável chamada tipo animal. E depois fazemos o que quisermos com ele. Neste caso, acabamos de fazer uma simples mensagem de registro do console desse tipo de animal. Mas isso não afeta o array original. Se eu datilografar animais, ainda
temos o nosso cão e gato e nada para ele. É apenas um método que nos permite iterar através de um array. Passamos por muita coisa. Passamos por muita coisa. Bem feito. Hope está começando a fazer cenas. Vejo-te em breve.
7. Por que fazer loops: Trabalhar com a filha é extremamente importante quando se trata de programação. E muitas das coisas que temos feito no momento foram como armazenar dados e nós estaríamos colocando-os em objetos. Estamos definindo variáveis, temos criado matrizes. Mas e quanto a acessar essas baterias? Em um, você pode pensar se você tem um aplicativo com milhares de usuários, eles dando-lhe filha. Mas em algum momento você vai querer extrair esses dados e exibi-los para usá-los para executar cálculos sobre eles. E isso é que nós looping torna-se vital. E aqui estamos falando sobre looping através de objetos, mas apenas tenha em mente, uma matriz é realmente um objeto também. Você pode fazer loop através de objetos e você pode loop através de arrays. Mas uma vez que você tem uma matriz, uma matriz de baunilha e comprar baunilha só significa que você tem toda uma cadeia de valores. Uma vez que você chegou a esse ponto, torna-se muito fácil passar por ele. Então é por isso que eu quero começar com objetos e objetos mais complicados que você definiu. Como vamos passar por isso? E muitas vezes você vai nos encontrar em uma situação em que você quer olhar através de seu objeto. E a única maneira de fazer isso antes do ESX era com um loop for in. E vou mostrar-lhe um exemplo de um “for in loop” em breve. Mas deixe-me apenas dizer que há uma maneira melhor e que melhores maneiras de converter seu objeto em uma matriz. E então você pode apenas loop sobre a matriz, porque loop sobre uma matriz é muito fácil agora. Então, como podemos converter nosso objeto em uma matriz? Será que eles três métodos muito populares, chaves de ponto de
objeto, valores de ponto de objeto e entradas de ponto de objeto. Chaves de ponto de objeto cria uma matriz que contém apenas os nomes de propriedade, também conhecido como as chaves do objeto. Valores de ponto de objeto, você provavelmente já adivinhou, que criam uma matriz que contém o valor de cada propriedade dentro do objeto. E entradas de ponto de objeto apenas lhe dá uma matriz. Mas agora, desta vez, você tem a chave e o valor. Ele sempre cria uma matriz de matrizes. Mas vou te mostrar o que isso significa em breve. Certo, então vamos dar um passo atrás. Começamos com um objeto complicado dentro de objeto convertido em uma matriz. E podemos usar um desses três métodos que acabamos de discutir. Faça isso. E agora podemos percorrer esta matriz como se fosse uma matriz normal de baunilha. E fazemos isso com d para, de loop. O loop for é incrível e é uma maneira muito mais fácil de percorrer elementos de uma matriz. Permitam-me que dê um exemplo. Vou mostrar-lhe rapidamente como funciona este loop. Digamos que definimos um monte de chaves de frutas. E é uma matriz que é uma banana e um mangá. Simples. Então, o que faz um “for of loop”? Que percorre cada chave. E o que eu quero dizer com chave, onde a sua chave neste caso nessa matriz, é banana. Na segunda iteração net key vai ser mangá. Para a chave const, ele vai tomar a chave da matriz. Mas agora, sem fazermos nada, grandiosidade para o loop, como é que ele sabe usar a matriz de chaves de fruta? Vamos esperar, chega uma segunda discussão. Você tem que dizer a esta matriz, hey, encontrar cada chave da matriz Fruit Keys. Então você abre isso para de loop com as chaves. E podemos fazer o que quisermos com essa chave. Porque sabemos em cada loop que a chave vai estar na primeira instância banana, e no segundo caso mangá. Então, neste caso, nossa chave de log de console simples irá apenas console log fenômeno a primeira iteração. E, em seguida, na segunda iteração, vamos consolar mangá. Vamos dar uma olhada em mais alguns exemplos agora.
8. Como fazer um exemplo de matriz: Passando pela filha para extraí-la. É tão importante quando se trata de programação. E eu realmente quero, eu quero estressar. Então, vou mostrar-vos dois exemplos. O que eu estou indo apenas para loop através de arrays, mostrar-lhe os diferentes métodos. E então, como discutimos na palestra, eu quero realmente criar um objeto com propriedades, pares
nome-valor, e eu quero percorrer isso. Então, sem mais delongas, vamos entrar nisso. Vou começar a cortar com funções mais complicadas e chamadas e loops. Porque percorremos um longo caminho. E eu acho que você está se familiarizando com os tradicionais objetos fáceis, matrizes e tudo isso. Então vamos criar uma função. Digamos que temos uma lista completa de membros do nosso lado. E queremos fazer um loop através de cada membro e dar a eles uma mensagem de boas-vindas. Como é que fazemos isso? Vamos primeiro, vamos criar uma função e vamos entrar em funções em uma seção completamente nova. Então não se preocupe com sintaxe ainda. Só entenda o conceito. Vamos definir uma função chamada Alta. E dizia que a função toma o nome da pessoa. Tudo que esta função faz é retornar nossa mensagem de boas-vindas. Bem-vindo, e estamos usando literais modelo, Sim, e nós vamos apenas cancelar o nome. Próximo. Vamos encontrar os nossos membros. E vamos dizer com o quê, uma lista inteira. E estamos apenas começando. Então só temos dois membros, Tom e Jerry. Mas então digamos que temos novos usuários, novos usos. John e Wally. Então, principalmente listas que empurram John. E quanto ao triste e empurrado Wally, agora, uma lista de membros deve conter quatro membros. E ele faz. E queremos cumprimentar todos os membros. Como iríamos fazer isso? Bem, lembre-se de como eu continuo estressando isso nunca é uma maneira certa de fazer algo. E há muitas maneiras de percorrer essa matriz. Basta olhar para os modos tradicionais da velha escola primeiro. Então, o tradicional para loop, e algo que vale a pena lembrar é que cada for-loop tem chaves no final. E é como o que queremos fazer em
código, entre essas chaves. O que difere é o que está entre parênteses aqui. Então, para o tradicional, então vamos começar aqui com tradicional. Old-school para loop. Temos que definir uma variável. E essa variável itera por um cada vez que o loop é concluído. Então podemos chamar isso de qualquer coisa. Mas tradicionalmente as pessoas gostavam de ser legais. Eu, então nós dizemos deixe eu igual a 0, então eu vou começar em 0. E, em seguida, o segundo parâmetro neste para loop vê sob que condição o loop continuará a loop? Porque, eventualmente, o ciclo vai ter que parar. Caso contrário, será um loop infinito. Então, digamos aqui, nós só queremos que isso itere quantas vezes? Vamos escrever apenas quatro vezes porque eles formam inversos, certo? Então precisamos que eu seja menor que o link da lista de membros. E então o terceiro parâmetro é o que acontece com i após a primeira iteração. E queremos aumentar em um. Então, quando começamos IS, faz o primeiro loop, quando termina, esse olho vai ser aumentado em um. E então essa condição vai ser provada. O hábito faz isso. E agora eu queria encontrar uma saudação, um acréscimo particularmente para cada membro. Vamos dizer saudação da LIT. Este é o lugar onde queremos retornar alta função. E lembre-se da função hi, um de seus parâmetros de entrada era o nome do indivíduo. Qual é o nome deste indivíduo no primeiro ciclo? Será simbolista. E lembre-se de acessar propriedades na matriz, podemos usar um colchetes. E aqui estou eu. Na primeira rede de iteração RBF, vire o nome Tom. E em tudo o que queremos introduzir o log do console. Saudação. Hoje você tem. Damos as boas-vindas ao Tom. Bem-vindo Jerry. Bem-vindo, Jon. Bem-vinda Molly, quão legal é isso? Espero que entenda o que fizemos, mas de novo, isso é uma velha escola. Vou te mostrar uma maneira melhor de fazer isso. Mas antes de te mostrar a melhor maneira de o fazer, deixa-me mostrar-te outra velha escola onde é chamado de “ loop” também é da velha escola. O loop for in. Novamente, temos os quatro e depois colocamos esses colchetes. E agora tudo o que temos que fazer é ter quatro nomes const no simbolista. Esta sintaxe está fazendo é em cada loop que vai obter cada elemento em nossa matriz. Chamamos o nosso nome porque sabemos os nomes deles, Tom, Jerry, John Wiley. Então ele vai pegar esse nome em nosso membro objeto Ernest em nossa matriz. E então tradicionalmente o que isso faz é que isso realmente acessa todas as propriedades de protótipos também. Então eu posso ficar muito pesado e às vezes ele acessa coisas que não deveriam. E por esta razão, muitas vezes
você inclui uma instrução if dentro deste para loop. E você só tem que dizer se simbolista e é uma propriedade embutida chamada sua propriedade. E tudo o que temos a dizer como se certa matriz tem sua própria propriedade e que está fora de qualquer protótipo. Então queremos executar este código. Então agora temos pausado esta declaração se. Acabamos com o quarteirão. O que escrevemos? Bem, a mesma coisa. Queremos que a nossa saudação execute essa função alta. E vamos passar em nome do espelho. Então é lista de membros e sim, nós não ligamos. Eu gosto que fizemos acima de uma rede old-school for-loop. Sim, definimos cada iteração. Vamos ter o nome que vai ser chamado de nome. Então passamos no nome. Agora colocamos nossa saudação e tudo o que queremos fazer é o registro do console. Esta saudação. E Bob é seu tio. Eles, nós vamos, Bem-vindo Tom, bem-vindo Jerry, bem-vindo Jon. Bem-vinda Molly. Mas você pode ver esses métodos orbitam pesado. Yahoo. Você realmente tem que pensar sobre isso. Você tem uma boa quantidade de datilografia. Deixe-me mostrar-lhe o for of loop, o que é incrível para o loop. Certo, então vamos fazer um “for of loop”. Meu IDE novamente me ajuda com este iterador const de objeto. Então, sim, nós temos nome e eu vou objeção é lista de membros. E você verá como isso é muito mais fácil. Isto vai percorrer cada nome, cada elemento da nossa matriz, do nosso objeto. Tudo o que precisamos fazer agora, as árvores sair saudação, que é executar a função hi. E já temos o nosso nome. E então podemos consolar o registro. Nossa saudação. Você pode ver o quanto mais fácil e simples para o loop é? Ótima. Mas quero mostrar mais um exemplo agora porque, sim, estamos lidando com uma matriz simples. Eu quero agora lidar com objeto complicado. Então deixe-me parar este vídeo porque está ficando longo. E no próximo vídeo, vamos estar lidando com o objeto e então vamos iterar através do objeto da dívida. Vejo-te em breve.
9. Exemplo de looping com objetos: Agora vamos criar um objeto. E vamos usar esses métodos para converter o objeto em matriz que vimos anteriormente. Há três métodos diferentes, e então nós vamos fazer loop através dessa matriz usando o loop for. Vamos ver como pode ser. Esse primeiro passo é, vamos criar um objeto. E digamos que nosso objeto é uma lista de compras de frutas. Vamos deixar que nosso fruto seja um objeto. E eu só vou usar a sintaxe literal do objeto por uma questão de simplicidade. Digamos que temos 12 bananas para cenouras e sete mangas. consola Wii registra a nossa fruta. Aí está o nosso objeto com bananas, cenouras e mangas. Como começaríamos a iterar e percorrer esses dados? Bem, a primeira maneira é usando chaves de ponto de objeto. Método um. Teclas de ponto de objeto. Vamos definir nossas chaves,
LETE chaves de frutas iguais. E agora colocamos os machados. Javascript construído em método de objeto, chaves de objeto. E o parâmetro que passamos para chaves, o fruto objeto. E se consolarmos, desconectar-nos. Temos literalmente agora uma série de nossas chaves, manana, cenouras e mangas. E foi tão fácil de fazer e é incrível trabalhar com ele. Vamos agora ver o segundo método e que é o objeto add_values método para objeto valor de ponto, valores de fruta atrasada. O objeto. Vamos acessar esse objeto interno JavaScript e como obtivemos valores. E passamos o objeto de fruta mais uma vez. E se consolarmos logar isto, obtemos os valores. Yahoo explode minha mente como isso realmente é simples para extrair dados de objetos. E como você pode ver que criamos uma matriz em ambas as instâncias, em chaves de ponto de objeto e objeto de valores. Transformamos nossos frutos de objeto em matrizes contendo os dados nos quais estamos interessados. Mas agora diga que você queria as chaves e os valores. Como faríamos isso? Vamos pesar o aumento do ponto do objeto entra na imagem. Vamos dar uma olhada. Método3. Interesses de objeto. Então agora vamos definir árvores frutíferas. Nós novamente temos que acessar o objeto JavaScript. E como aumentamos. E passamos na fruta objeto. E se pudermos resolver isso, teremos uma matriz de arrays. Lembre-se de como eu disse que o ponto aumenta quase como uma matriz de matrizes. E você pode ver por que agora, porque você matriz geral consiste em matrizes menores de pares chave-valor. Ok, legal, mas agora como vamos iterar essas entradas de frutas e extrair as duas falhas? Vamos dar uma olhada. Então, se você usar objetos. Create entradas, você provavelmente um para extrair os pares de valor de chave. E vamos fazer um para, de loop porque para off loops são incríveis. E se fizéssemos isso, se fizéssemos fruto de interesses de frutas, o que acha que aconteceria? Consola Wii, tronco, frutas. Bem, isso é aumento se você dados caso, ele vai apenas para console log eles matriz porque ele vai tomar o primeiro elemento de que geral maior um em log console que. Mas e se quisermos extraídos? E se quisermos perdê-lo dizendo, você precisa comprar bananas x, você precisa comprar dois quilates. Como é que fazemos isso? Ok, bem, o que é realmente legal é para o loop é esta fruta que você pode
dividir em uma variedade de nome de fruta e número de Froude. Quero dizer, você pode chamá-lo do que quiser. Então, sim, eu só tenho frutas. Você sabe o que? Deixe-me torná-lo mais intuitivo para você. Chave de fruta, conjunto de nomes. Digamos que a chave da fruta e que pode ser Food Valley. Então você sabe que aqueles que chave nos outros têm qualquer rede todos editar é para na escola é fácil. E agora devemos ser capazes de console log. Vamos usar literais modelo e dizer que você precisa comprar frutas. Frutas. Chave. Quão legal é isso? Registros de um console auxiliar. Você precisa de terminologia, cerca de dois quilates por perto, sete mangas, eles têm isso. Então este foi um exemplo realmente profundo de tomar um objeto d estruturá-lo usando chaves de objeto, valores de objeto. E até usamos interesses de objeto para obter as chaves e os valores desse objeto. E então uma vez que você tem uma matriz de valores, é tão fácil percorrer uma matriz. Porque o for of loop, isso é muito intuitivo e funciona incrivelmente bem com matrizes. Vamos continuar.
10. Formas: Aprendemos sobre objetos, aprendemos sobre matrizes. A, esta palestra, vai ser épica. Mas deixe-me começar dizendo que todos os mecanismos JavaScript usam os conceitos discutidos nesta palestra como uma forma de otimizar o código. E como você pode ver pela batida, isso é formas, mas diferentes motores chamam de forma coisas diferentes. Então, quando você começar a pesquisar isso, você pode encontrar terminologia diferente. Algumas pessoas se referem a essas classes como ocultas, mas isso é confuso porque temos classes JavaScript V8 causando mapas. Mas isso também é confuso porque lembre-se que usamos essa iteração de mapa. Outros chamam-lhes tipos javascript núcleo causando estruturas. Mas macaco aranha o chama de formas e apenas evitar confusão com outra terminologia após lado chamá-los formas também. Mas, de qualquer forma, eu discordo. Agora sabemos como os objetos são definidos em JavaScript. Temos trabalhado com eles. Mas nesta palestra, quero mergulhar mais fundo. Quero discutir como os mecanismos JavaScript funcionam com objetos. Olhando para o que fizemos até agora com objetos, você provavelmente já adivinhou que acessar propriedades é de longe a tarefa mais comum. O que quero dizer quando, quando temos um objeto, vamos apenas definir um objeto de usuário através do primeiro nome e sobrenome. Vai ser muito comum para nós consultarmos esses valores. Por exemplo, o nome do ponto do usuário. Estamos pedindo ao motor para ir buscar o primeiro nome deste usuário. E por isso, é crucial para JavaScript para tornar esse processo o mais rápido possível. Ok? Ok, você entendeu. Então, qual é a forma? Bem, deixe-me dizer isto. Isso é comum ter vários objetos com os mesmos nomes de propriedade ou chaves. Por exemplo, vamos criar um objeto de cobra Dogen. Por exemplo, digamos que tínhamos um objeto cão, portanto chamado de duas chaves, dois nomes, tipo e idade. Agora criamos um objeto de cobra, e ele também tem tipo e idade. É intuitivo que estes dois tenham a mesma forma. Esses objetos têm as mesmas chaves. E Itália significa em forma de arco. As formas são apenas objetos que têm a mesma aparência e sensação. Mas vamos cavar mais fundo para entender o que JavaScript faz com objetos. Então vamos criar um objeto com propriedades x e y, cada um com um valor de 1020. Quando criamos esses objetos, sabemos que o modelo de objeto JavaScript é implementado. Lembre-se que olhamos para o modelo de objeto JavaScript e tudo o que quero dizer com isso é que cada objeto usa a estrutura de dados do dicionário que discutimos anteriormente. Ele contém as chaves como strings. As chaves aqui são x e y, e essas chaves apontam para os respectivos atributos de propriedade. Agora, quando acessamos a propriedade X nesse objeto, IE, nós realmente digitamos em nosso código OBJ 0.8x, ou no caso de nosso objeto US, nós digitamos user.name. O que vai acontecer. Será que os motores JavaScript vai olhar no objeto JS para a chave para que dói. E nele vai carregar os atributos de propriedade correspondentes. E finalmente, uma vez feito
isso, ele vai retornar o valor. Você vê o mesmo dia entre parênteses rectos. Ele vai retornar rede no caso de saída vai retornar lata. Mas esses atributos de propriedade. Onde eles são armazenados na memória? Deixa-me fazer-te outra pergunta. Devemos armazenar esses atributos de propriedade como parte de seu objeto JS? Antes de responder a isso, deixe-me apenas dizer o que se acabarmos criando milhares de objetos que têm uma estrutura semelhante, IE, que têm a mesma forma. Fora argumentou que realmente desperdício para armazenar o dicionário completo, que contém nomes de propriedades e atributos associados em cada objeto JS y. Porque isso vai resultar em um monte de duplicação e uso de memória desnecessário. Chamadas. Sabemos que não seria eficiente duplicar esses atributos de propriedade para cada objeto que tem a mesma forma. Então, o que faz o motor JavaScript? Bem, ele armazena uma forma
do objeto e faz isso separadamente para o próprio objeto real. E esta forma irá armazenar todos os nomes de propriedade e atributos, exceto para os valores. Em vez de armazenar a propriedade value, a forma tem que parar o valor de deslocamento que faz referência ao objeto de perseguição para que o mecanismo saiba onde encontrar o valor. E isso significa que cada objeto JavaScript que tem a mesma forma apontará exatamente essa instância faz uma instância de forma, sem duplicação e sem vazamento de memória. E como cada objeto JavaScript é único, cada item terá valores diferentes. Significa que esse objeto só tem que armazenar os valores exclusivos. Deixa-me mostrar-te o que quero dizer. Vamos pegar nosso objeto com x e y. Agora, em vez de que esse objeto está armazenando as chaves, ele só vai para valores de hábitos porque esses valores são únicos para ele que um agonista, todos os valores 1020. E esse objeto vai estar apontando para uma forma. E essa forma é o que vai estar armazenando as chaves e os deslocamentos associados. As cenas x_max. Então sabemos que quando você está olhando para a forma, o x aponta para atributos apropriadamente com um deslocamento de Sarah. E é por isso que o mecanismo JavaScript vai saber que x tem um valor de dez. Você já está confuso? Bom. Faz parte da viagem para uma parte da viagem. Talvez este exemplo seja ainda mais claro uma vez que você tenha vários objetos. Deixe-me mostrar-lhe que agora nós tínhamos um objeto OBJ, eles só tinham x e y. Agora vamos criar OB J1 e OB J2. Então temos dois objetos agora, mas com valores diferentes. E isso provavelmente vai fazer cenas Gina, porque agora temos dois objetos e eles possuem todos os valores únicos. Mas ambos apontam para a mesma forma porque ambos têm a mesma forma. Que incrível. E você pode realmente ver agora que em vez de armazenar essas informações em ambos os objetos como provavelmente atributos é armazenado apenas em uma forma. Lembra-te, mesmo que estejas a ficar confuso, não só lembrares-te disto. Não importa quantos objetos sejam, centenas, milhares, milhões ou bilhões. Desde que eles tenham a mesma forma, nós só temos que parar a forma e as informações da propriedade uma vez. Mas até agora só vimos exemplos em que temos um objeto e uma estrutura predefinida. Nunca tivemos que adicionar propriedades a ele. que, naturalmente, levanta a questão, o que acontece quando adicionamos propriedades a um objeto que já foi criado? O que acontece com a forma? Isto é nós cadeias de transição e árvores entram em cena. Vamos criar o objeto de usuário. E inicialmente ilustre sentado, então está vazio, não tem propriedades. Qual é a sua forma? Bem, sua forma também está vazia. Então, neste momento, o objeto de usuário está apontando para um em forma de T. Simples, certo? Mas agora vamos adicionar uma propriedade chamada nome a este objeto com um John válido. Assim que você fizer isso, uma nova forma será criada. O mecanismo JavaScript agora faz a transição para essa nova forma que contém o nome da propriedade. O objeto de usuário tem um valor de John como seu primeiro deslocamento. Neste ponto no tempo, é na verdade o único deslocamento. Mas vamos continuar. Vamos agora adicionar uma propriedade chamada idade
ao objeto dos EUA e dar-lhe um valor de 38, você adivinhou. Outra forma é criada. O mecanismo JavaScript novamente faz a transição para essa nova forma que agora contém nome e idade. Os atributos de propriedade anexados a essa idade. Ele nos diz que o valor para a idade pode ser encontrado
no deslocamento uma posição do nosso objeto de usuário, o que faz sentido. E apenas como uma nota lateral que se y i, a ordem em que as propriedades são adicionadas ao objeto afeta a forma resultante. Por exemplo, definimos nome e idade Dean, mas isso resultará em um tom diferente do que se tivéssemos atribuído pela primeira vez aos 38 anos. E o nome “John Vaccines “vai se baralhar em torno de nossas formas. Na verdade, outra maneira de representar essa imagem que você está vendo no momento é a seguinte. Como você pode ver, não precisamos parar
a tabela completa de atributos de propriedade para cada forma. Em vez disso, se ele forma só precisa saber sobre a nova propriedade que introduz. Por exemplo, neste caso, não
temos que armazenar as informações sobre
o nome na última forma porque ele pode ser encontrado anteriormente na cadeia. E para nos fazer trabalhar, cada forma se liga de volta à sua forma anterior. E é por isso que se chama cadeia de transição. É como uma corrente, como uma grande corrente com muitos elos. E todas essas formas têm ligações umas com as outras voltando. Agora, no nosso caso, se quisermos acessar a propriedade name em nosso objeto de usuário, que sabemos que é John. Quando escrevemos e user.name, o motor JavaScript vai procurar o nome
da propriedade, aproximando-se primeiro da forma de idade. Por quê? Porque é o mais baixo da corrente. Não vai achar que o,
então o motor vai continuar tendo que andar até a cadeia de transição até encontrar a forma que introduziu a propriedade nome. Faz sentido. Fukuoka, agora estamos quase terminando, mas eu quero ficar um pouco mais complicado. O que acontece se você tiver dois objetos que estão primeiro vazios e, em seguida, você colocar propriedades diferentes em cada um deles. Lembrará cadeias de transição do Holoceno e árvores de transição. É aqui que as árvores entram , porque neste caso vamos ter que ramificar. Em vez de termos uma cadeia de transição, podemos ter que ter uma árvore de transição. Deixa-me mostrar-te o que quero dizer. Vamos criar um usuário um objeto. Primeiro é NT e, em seguida, substitua o nome da propriedade nele. Vamos acabar com um objeto JS chamado User um que contém um único valor, neste caso John. E também vai resultar em formas de harmonia em duas formas,
S, certo, a forma EMT e a forma com apenas uma propriedade chamada nome. Ok, e vamos criar usuário para. O usuário dois também vai começar com um objeto vazio, mas então vamos adicionar uma propriedade diferente chamada idade. Qual é o resultado de wallace? Bem, nós vamos ter dois objetos, mas eles vão ser três. Formas vai ser para moldar correntes. Um relacionado ao usuário um e outro relacionado ao usuário dois. Mas deixe-me perguntar isso agora, isso significa que sempre vai ser uma forma indie associada a cada objeto? Não, não em tudo. Deixe-me mostrar-lhe outro exemplo. Dê uma olhada. Digamos que criamos o usuário um, começa como AMD e ele tem um nome de John. Sabemos que neste caso vamos ter um objeto JS, Will Valley John, que aponta para uma forma vazia que Dane transita para uma nova forma com o nome da propriedade de nomeação. Sabemos disso, mas digamos que criamos um segundo usuário, mas desta vez criamos imediatamente uma propriedade chamada nome para ele. Nesse caso, criamos um objeto que imediatamente tem a propriedade name. E isso significa que o mecanismo JavaScript não teve que
começar a partir de um objeto vazio e transição para um novo. É imediatamente apenas ido para o resultado final. E eu vou fazer um ponto muito bom aqui. Este é y. literais objeto pode ser muito bom porque esta otimização e nós acabamos de ver, encurta a cadeia de transição e
torna mais eficiente para construir objetos a partir de literais. Agora, eu quero ficar um pouco mais complicado. Apenas tenha paciência comigo. Segure firme, não pare. Agora, você está quase terminando. Respostas, informação muito razoável, muito interessante. Vamos criar um objeto de usuário com três propriedades agora, nome, idade e negrito, oitenta
deliciosos, esmague-os. Como aprendemos antes, isso cria um objeto com quantas formas? Com quatro formas na memória. Isso é certo. E agora para acessar o nome da propriedade nesse objeto, o mecanismo JavaScript precisa seguir a lista vinculada. Vai ter que começar com a forma na parte inferior. E então ele vai ter que trabalhar seu caminho até a forma que introduziu o nome, que é onde o topo. E como eu tenho certeza que você já adivinhou, isso
vai vai ser se fizermos isso com mais frequência, especialmente quando os objetos têm um monte de propriedades. Então, para acelerar a busca de propriedades que o motor JavaScript, Ed é uma estrutura de dados de tabela de forma. E a tabela de formas é um dicionário mapeando chaves de
propriedade para as respectivas formas que introduziram a propriedade dada. Aqui está a tabela de forma e o que parece. Na verdade, esse é outro tipo de dicionário que encurta todo esse processo. Por exemplo, você pode ver na tela na tabela shake, vai dizer a maneira do mecanismo JavaScript para encontrar esses valores de propriedade em que forma encontrar esses valores de propriedade. Então, na pesquisa para o nome, ele ainda começa na forma, na forma posterior. Mas mais tarde Shape Points para agitar mesa. E eles, o mecanismo JavaScript sabe olhar em que forma encontrar essa propriedade nome. Está fazendo o roteador Saints. Não posso acreditar ou você é sério. Agora temos outra mesa de forma. Pensei que toda a razão para formas era desprovida ou pesquisa de dicionário. Agora temos outro. Alelo não são guetos. Os acampamentos vão desistir. Não, não desista e saiba a resposta. E a razão é que a tabela de formas e formas agradáveis são um meio para um fim e que é habilitar caches inline. caches embutidos ou o verdadeiro segredo por trás ambiente de tempo de execução do
JavaScript tornam as mandíbulas rasgadas tão rapidamente. E eu não quero entrar em muitos detalhes em caches inline porque esse é um tópico inteiro em si mesmo. Mas espero ter lhe dado sabor suficiente e conhecimento
suficiente para que você possa aprofundar este tópico que lhe interessa. Mas nós não terminamos com esta Legião porque um, Eu quero mostrar a vocês como é uma mesa de batido. Em B. Eu só quero introduzir mas mais para o conceito de um cache em linha e o que realmente significa que ele muito, muito altamente, senhor, apenas café amarelo. Só nos restam um minuto ou dois minutos. Mex desta palestra. Está pendurado. Vamos voltar a isso. E eu não quero entrar em esconderijos interiores. Sabemos que é outro tópico inteiro em si mesmo que está em um nível muito alto, é
assim que eu gosto de pensar nisso. Digamos que criamos uma função chamada gosto que leva em um objeto de usuário e nós apenas console registrando o nome do usuário para fora. Quando você executa a função pela primeira vez, o cache embutido procuraria nome
da propriedade e acharia que o valor é armazenado no deslocamento 0. Porque sabemos que o usuário um objeto tem o nome John, neste caso no deslocamento 0. Quando você executar essa função, ele vai encontrar esse deslocamento. E o cache embutido memorizará a forma e o deslocamento em que sua propriedade foi bombardeada. Então, quando você olha para o j é gosto de função, ele vai parar que offset Zara naquela chamada de função. E o que isso significa é que, se o mecanismo JavaScript vê objetos com a forma que o cache embutido gravou antes, ele não precisa mais chegar às informações da propriedade. Em vez disso, a pesquisa de informações de propriedade cara pode ser ignorada inteiramente. E isso é significativamente mais rápido do que procurar a propriedade a cada vez. Deixa-me mostrar-te o que quero dizer. Então, vamos configurar a função de teste com Calderon usuário um e os caches em linha para o deslocamento 0 na própria função. Agora, quando chamamos isso no usuário dois, o que você acha que vai acontecer? Bem, neste caso, os caches embutidos vão reconhecê-lo. Tem a mesma forma. E em vez de ter que procurar os atributos de propriedade e ir para as tabelas de forma, et cetera, et cetera. Mas sabe que o diabo disse 0. Então tudo o que ele faz é que ele leva em cache inline de Zara e ele retorna um valor Ali, a partir desse objeto. Legal, certo? De qualquer forma, há um nível muito alto de caches em linha. Você não tem que realmente entender isso muito em profundidade agora, mas se você quiser cavar mais fundo, Herbert, dado a você um sabor suficiente. Bem, esta foi uma longa palestra, então obrigado por me apoiar. Bem, Dan, se você chegou até aqui, só quero recapitular rapidamente. Aprendemos como os mecanismos JavaScript armazenam objetos e arrays, e como formas e caches internos ajudaram a otimizar as operações nesses objetos. E com base nesse conhecimento, o que podemos tirar dele? Bem, se há uma coisa que podemos tirar desta prática, nós perdemos apenas inicializar nossos objetos da mesma maneira. Então eles não acabam tendo formas diferentes. Por exemplo, se você quiser criar objetos de usuário, não crie um com uma propriedade de nome, outro com um fname, Outro com um nome próprio. E outros são primeiro e, em seguida, um N maiúsculo para nome lá. Então vamos ter formas diferentes e isso vai tornar as coisas mais complicadas. E assim o fundo em vez ser consistente em como você inicializar seu objetivo objetos. Espero que isto tenha sido muito informativo. T, eu? Muito divertido montá-lo juntos porque um tópico bastante complicado e muitas pessoas não sabem sobre isso, então sim, aproveite. E vamos seguir em frente. Vamos entrar em um pouco mais de JavaScript para vê-lo em breve.