Transcrições
1. Introdução: Bem-vindo aos tópicos JavaScript. Uma Siri que se concentra em tópicos individuais. Em JavaScript. Esses tópicos são focados para que você possa gastar seu tempo limitado aprendendo ou revisando um padrão ou conceito de recurso
específico. Vamos dar uma olhada no que é abordado neste tópico em declarações em Escopo. A lista de metas de passeio, Uma compreensão completa do escopo no script Java e como as palavras-chave declaração, var, Let and const diferem e aplicar ao escopo. Escopo é um conceito crítico para entender, então vamos cobrir isso primeiro em profundidade. Usando a barra de palavra-chave, em seguida, discutir let e, em seguida, finalmente, const. Deve levar cerca de 30 minutos para completar este tópico, então vamos entrar.
2. Entendendo o escopo: é importante entender o escopo em JavaScript para entender o que seu código está fazendo e, a fim de aproveitar ao máximo todas as suas capacidades neste vídeo, usaremos vários exemplos para ajudar a ilustrar o escopo e a cadeia de escopo e fazer com que conceito mais compreensível. Então, primeiro, parece importante definir o escopo. Escopo é simplesmente um conjunto de regras que determinam onde dentro de um programa você pode acessar itens
referenciados. Geralmente isso se refere a variáveis. Então escopo é um conjunto de regras que determinam onde você é capaz de acessar as variáveis
que você declarou. Agora, escopo não se limita a variáveis, como você verá em nossos exemplos, mas geralmente pensamos em variáveis. Quando estamos falando de escopo. Vamos agora dar uma olhada em alguns conceitos que estão associados ao escopo. O número um é que o escopo é determinado. Agora, o que isso significa? Bem, como simplesmente significa que quando você está montando seu programa, onde você coloca declaração de variáveis e funções determinadas esculpir para que ele não tem nada a ver com quando uma função é chamada ou quando o seu código é executado. O escopo é determinado pela forma como você escreve seu programa. Em segundo lugar, JavaScript usa escopo de função quando uma nova função é declarada que cria escopo. Tudo em JavaScript começa no escopo global. Mas como você começa a criar funções que também cria escopo e, em seguida, finalmente,
funções aninhadas . Então, se você declarar uma função dentro, outra função que cria uma função aninhada que cria o que chamamos de cadeia de escopo explicará o que é uma cadeia de escopo também. Portanto, estes são os três conceitos que são importantes a ter em mente à medida que passamos por esses exemplos. Agora, vamos dar uma olhada no código que vamos usar para os exemplos que ajudarão a explicar o escopo. Primeiro, declaramos variável, atribuímos o número 10 a ela. Em seguida, temos uma função que temos referenciado com adicionar cinco. Ambos estão no espaço global. Dentro da função ad cinco, declaramos variável atribuindo o número cinco a ele. Em seguida, registramos as informações que resultam do número passado mais essa variável . Declaramos outra função dentro da função ad cinco. Na verdade, declaramos uma segunda função em 15 que está dentro da função ad cinco. Ambos são chamados e um número é passado para essas funções. Então, agora vamos dar uma olhada em qual escopo é criado como resultado desse código. Aqui está um diagrama identificando o esculpir que é criado pelo código que estávamos olhando . Então, o escopo mais externo que eu rotulei um e, em seguida, a função Ad cinco cria escopo. Eu rotulei que estar dentro da função Advi. Temos uma função de 10, que cria escopo. Eu rotulado que ver, e temos uma função anúncio 15 que cria escopo. Eu rotulei que d nenhum aviso no esculpt para B, C e D. Não inclui a definição da função é uma parte de seu escopo. Ele inclui a variável que é passada, mas a função realmente reside no escopo externo. Por exemplo, se dermos uma olhada no mar, número dois é uma parte do escopo ver, mas a função ad 10 é uma parte de esculpir. Seja agora. Vamos percorrer o código e ver como o escopo afeta o que acontece. Então, primeiro fora da seta está apontando para a nossa primeira declaração desculpável, que é simplesmente definir uma variável A e atribuir o número 10 para ele a próxima instrução executar Herbal é a chamada da função ad cinco, e nós passamos em um Número três. Então vamos para a função do anúncio cinco. Isso é onde a variável numb é declarada tão dormente agora é igual a três. Por causa desse valor, que passamos, então
declaramos variável B e um sinal cinco para ele. Agora encontramos a declaração de registros de pontos do cônsul. Agora este concerto fora declaração log faz com que um olhar para cima para as duas variáveis. Numb e ser primeiro procura por Numb dentro de seu próprio escopo. Ele o encontra dentro de seu próprio escopo e, portanto, retorna três e, em seguida, procura a variável, estar dentro de seu próprio escopo. Ele o encontra e retorna cinco e, em seguida, imprime o número oito porque três mais cinco é oito. Agora vamos para a próxima declaração desculpável que chama a função ad 10, e passa em um número três. Então, no anúncio 10 Função entorpecida para é atribuído um valor de três. Então vamos ao diário de concertos. O sistema procura através de seu próprio escopo, o escopo para a função ad 10 para encontrá-los para ele encontra e retorna três. Em seguida, ele procura por um Ele não pode encontrar um esculpir dentro. Veja, então ele vai para o próximo escopo mais externo. Esta é a cadeia de escopo de que falamos. O próximo escopo mais externo é ser. Ele procura a variável a dentro de esculpir se ele não pode encontrá-lo. Então ele vai mais longe na cadeia de escopo. Ele vai para o próximo escopo mais externo, que é o escopo A e escopo. A passa a ser o escopo global, então a cadeia de escopo pára no escopo global. Se um não for encontrado no escopo global, então ele é considerado uma variável não declarada e causa um ar. No entanto, ele encontra um nesse escopo. Ele retorna o valor e, em seguida, imprime três mais 10 que é 13. Passamos para a próxima declaração desculpável, que é uma chamada para adicionar 15 e passa no número três. Numb três é declarado com um valor de três. Uma variável see é declarado e atribuído um valor de 15 e, em seguida, o ponto cônsul log declaração primeiro procura para entorpecimento três. Ele o encontra dentro de seu próprio esculpir e retorna um três e, em seguida, procura por C que encontra dentro de seu próprio escopo e retorna de 15 adiciona esses dois juntos e imprime 18. Os quatro escopos diferentes, que demos uma olhada aqui, foram criados pela forma como entramos no casaco porque aninhamos funções dentro da
função ad cinco que criaram escopo dentro dela e também criaram uma cadeia de esculpir, que ele poderia atravessar para encontrar variáveis quando ele está procurando por elas. Não, muito rápido. E se mudarmos uma linha de código? A linha de ID em negrito é o frio que foi alterado em vez de se referir à variável A. Agora está
se referindo à variável Ver. Então, isso é possível? Variável See é realmente apenas declarado dentro do escopo D Âmbito D não é uma parte da cadeia de escopo para escopo. Veja, portanto, um ar seria produzido. Basicamente, o que aconteceria é que iria procurar a variável ver dentro do escopo, Veja não poderia encontrá-lo. Vai para a próxima mira exterior, que é B. Não
consigo encontrá-la, depois vai para um campo, descobre que gera um ar. Tudo bem, mais
um exemplo com mudança de código. Então essa linha mudou de volta. Assim, a variável a está sendo usada, mas para baixo dentro da função. Adicione 15. Nós mudamos a instrução log constante para simplesmente chamar a função, adicionar 10 e passar em um número de três. Isso vai funcionar bem? Quando essa função é chamada, ele vai procurar a função dentro de esculpir D. Ele não vai encontrá-lo. Ele irá então para o escopo externo, qual é o escopo ser? Ele pode encontrá-lo lá? Sim, a função ad 10 é declarada dentro do escopo. Seja assim que o encontre e o execute. Agora. Antes de finalizar este vídeo, eu gosto de verificar tudo o que falamos executando o código real. Então vamos fazer isso agora. Tudo bem, aqui está o código real. Está anexado a esta página HTML. Então, quando ele for executado, devemos obter oito, 13 e 18. Vou refrescar isso. Abra o console 8 13 e 18. Agora vamos fazer rapidamente as mudanças, quais falamos anteriormente. Se eu mudar essa variável para ver como eu mencionei, nós conseguiríamos executar um salto aéreo. Com certeza, temos uma referência lá. Ver não está definido porque ele não pode encontrar ver em sua cadeia de escopo. Vamos mudar isso de volta para a. e agora vamos chamar em vez de concerto fora log que é chamado adicionar 10 passando um três. Então, se isso funcionar, devemos pegar o 8 13 e o 13. E com certeza, é o que temos. Mais um comentário antes de deixarmos o conceito de alcance. Sim. Seis Sim, 2015 introduziu uma nova palavra-chave para declarar variáveis. Deixe que crie um escopo diferente do Var. Vamos falar sobre o que vamos falar no próximo tópico, então vamos seguir em frente.
3. A diferença entre var e deixe: a norma ES seis forneceu uma nova forma de definir variáveis. Então vamos dar uma olhada na diferença entre Var versus let now. A principal diferença é com o escopo das variáveis. No entanto, há outra diferença de também, e tem a ver com içamento. Então, primeiro, o escopo das variáveis declaradas com barra é a própria função ou se elas são declaradas como uma variável
global, é o ambiente global, enquanto as variáveis que são declaradas com deixar o escopo desses variáveis é simplesmente o bloco de
código, o bloco de código contido dentro de chaves. Agora, quanto ao içamento, variáveis declaradas com latte não são içados, enquanto aqueles declarados com longe são, Vamos dar uma olhada em ambos os exemplos. Então, primeiro eu tenho uma função simples que simplesmente registra uma variável para o console. Vou ligar para essa função online. Sete. No entanto, a variável não é declarada até a linha 10 e agora eu estou usando BAR. Vamos olhar para içar neste primeiro exemplo. Ele me deixa ir em frente e atualizar minha página da Web e exibir o console e ver o que temos. Indica que as variáveis indefinidas não atribuímos um valor a ele, mas não nos dá um ar que a variável não existe. Portanto, a declaração da variável foi içada até o topo do código, mas a atribuição permaneceu onde a tínhamos colocado dentro do código. Agora, qual é a diferença se mudarmos isso para deixar agora em ambas as situações, isso é no ambiente global, então o escopo da variável para o nosso e latte no ambiente global é o mesmo. Mas vamos ver o que acontece com o içamento. Atualize novamente, abra o console e observe. Agora temos referência lá. X não está definido, por isso não foi içado com deixar onde estava com barra Tudo bem. O segundo exemplo neste exemplo tem uma função que mais uma vez está registrando para o cônsul, mas está passando por um loop de quatro, e está registrando o valor de I para o cônsul cada vez que passamos pelo loop quatro. Uma vez que o loop quatro está completo,
em seguida, registra I mais uma vez agora. Neste primeiro exemplo, declaramos I com bar. Vamos em frente e chamar essa função e ver o que acontece. Atualizar Console 1234 e, em seguida, cinco. Esta é a declaração final do cônsul aqui porque o loop quatro foi tão longo quanto era
menos de cinco. Muito bem, agora vamos mudar este dedo do pé. Vamos agora lembrar, vamos deve definir o escopo da variável para o bloco de código. Aí está o nosso bloco de código. Então vamos ver o que acontece quando tentamos registrar I para o console na Linha 15. Salve esta atualização. Pegamos o 1º 4 muito bem. Mas assim que chegarmos à declaração final do registro de concertos, temos uma referência lá onde eu não esteja definido. E isso é porque eu fui definido com deixar assim o escopo é limitado. Espero que esses dois exemplos ajudem você a ver a diferença entre var e deixar eu pensar que uma das melhores maneiras de aprender é tentar coisas diferentes em seu código e descobrir o que acontece. Então, no projeto para este curso, vou ter que fazer exatamente isso. Você vai jogar com o código fornecido no tópico anterior e fazer alterações para ver a diferença entre let e bar. Mas antes de descrever o projeto, precisamos falar sobre Const. Então vamos seguir em frente
4. Como criar Constantes com const: temos outro tópico ES seis criando Constance. Isso vai junto com a criação de variáveis porque é uma estrutura muito semelhante. Uma constante é um recipiente que contém o valor, as principais diferenças. Você não pode alterá-lo uma vez fora do valor, atribuído ao contêiner. Então vamos dar uma olhada nisso. A sintaxe para configurar uma constante é muito semelhante. A única diferença é em vez de nossos anos ou latte, a palavra const. No passado e script Java, quando os programadores queriam indicar que um valor não deveria ser alterado, eles colocaram o nome da variável em todas as letras maiúsculas então, como eles estavam programando que saberia que este é um valor constante. Este é um valor que não queremos mudar. É uma boa prática para continuar. Eu acho que quando você está usando a palavra-chave const para declarar um sim constante, seis tornou possível para que você agora pode criar um contêiner, um recipiente de tipo variável que uma vez que ele é definido, ele impede que você faça uma alteração nele. Então, se assinarmos esta constante pi o valor de 3,14 podemos então referenciar isso e ele
volta e exibi-lo, mas notar que não podemos alterá-lo. Mesmo que o valor de mudança esteja correto, basicamente nos dá um ar. Então há situações em que você quer usar uma constante algo que é imutável. Nesse caso, você gostaria de declará-lo com constante. Agora, como o escopo de Const se compara com var e deixar tão custo é escopo de bloco, que é exatamente como deixar assim a discussão que tivemos sobre deixar se aplica a const. Agora há mais uma coisa que precisamos mencionar sobre Constant. É importante lembrar que Const Onley restringe a atribuição de valor. Não há restrição no próprio valor. Então, o que isso significa? Praticamente bem, deixe-me ilustrar. Então vou declarar duas coisas com a CONST. Este ano é um número. É um primitivo. Uma vez que é primitivo, não
podemos alterar o valor. E porque é declarado com Const, não
podemos reatribuí-lo. Agora a segunda coisa vai ser o usuário para encontrar objeto. Certo, então temos duas declarações com Const. Vamos em frente e dar uma olhada nisso. Então, se eu olhar para a torta no console, eu posso fazer referência a ela. Mas como vimos, não
posso mudá-lo. Me dá um ar. Se eu fizer isso agora, vamos dar uma olhada nos outros 10 b.
J. J. Eu posso mencionar que eu posso olhar para ele. Vamos ver se tentamos mudar para outra coisa. Talvez só um número. Não, dá-me um herdeiro. Não posso fazer isso. Mas aqui está algo que eu posso fazer. Eu posso mudar o objeto porque ele é um objeto. E objetos em Javascript são imutáveis. Posso ir em frente e mudá-lo. Então eu poderia definir o nome também. Outra coisa. E isso irá em frente e mudará isso. Então é isso que quero dizer. Quando digo que a restrição está na atribuição de valor. Não está no valor em si porque os objetos são imutáveis em JavaScript, podemos continuar a modificá-los. Agora, onde você usaria Const? Bem, agora um dia. Você verá uso const em muitos lugares. Ele é freqüentemente usado para variáveis que armazenam a função. E a razão para isso é que você não iria querer assinar outra coisa para essa variável. Se você armazenou uma função nele, algo que você pode estar ciente ou você pode ter visto, que Const. Tornou-se a declaração de escolha em muitos casos porque há muitas coisas em seu código que você não deseja atribuir um novo valor. E isso faz sentido. No entanto, você também pode querer considerar o que Const comunica aos outros desenvolvedores. Basicamente, ele está dizendo que isso não vai ser mudado, então eu hesito usá-lo com coisas como de costume para encontrar objetos e durar. Não pretendo mudar esse objeto. Não quero que esse objeto seja alterado ou tenha congelado o objeto. Mas se o objeto vai ser imutável, então eu vou declarar que foi outra coisa, dependendo do que eu quero que o escopo seja. E isso é outra coisa a
fazer, considerar deixar e const confusos intercambiavelmente porque seu escopo é o mesmo. Mas se você quiser um escopo diferente, então você precisaria usar barra. Tudo bem. No próximo tópico, vou explicar o projeto para este tópico tira de trabalho
5. Projeto: uma das melhores maneiras de aprender JavaScript é tentar coisas diferentes e descobrir o que acontece. Então, para o projeto, eu gostaria que você fizesse exatamente isso. Primeiro, baixe o código do projeto que frio se parece exatamente com o código apresentado na
discussão sobre o escopo. Você vai notar que o casaco usa exclusivamente de nossa fazer algumas mudanças e descobrir o que acontece. Use. Vamos usar Const. Experimente algumas coisas, veja o que acontece, em seguida, Faça uma captura de tela de suas alterações co ou carregue o arquivo de código ou pode estar ligado a alguns, Cody escreveu em Code Pen no código escrito um monte. Em seguida, escreva uma descrição do que você aprende. Desta forma, todos podemos aprender uns com os outros, que é outra maneira importante de aprender script Java. Então tente e obrigado por fazer parte deste tópico JavaScript. Declarações e âmbito