Aprenda JavaScript: do iniciante às técnicas avançadas de codificação | Zoë Davidson | Skillshare

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Aprenda JavaScript: do iniciante às técnicas avançadas de codificação

teacher avatar Zoë Davidson, Software Engineer & Cinematographer

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Introdução

      0:51

    • 2.

      PROJETO DO CURSO 

      0:32

    • 3.

      Linguagens de programação

      2:23

    • 4.

      Configuração

      2:17

    • 5.

      Escrevendo JavaScript

      2:05

    • 6.

      Variáveis

      13:44

    • 7.

      Matrizes

      19:28

    • 8.

      Funções

      18:59

    • 9.

      Objetos

      8:15

    • 10.

      Formulário básico

      7:56

    • 11.

      Formulário avançado

      6:14

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

507

Estudantes

4

Projetos

Sobre este curso

Este curso ensinará tudo o que você precisa saber para escrever JavaScript, do iniciante ao avançado:

  • O que é JavaScript
  • Como usar, Variáveis, funções, matrizes e objetos
  • Como criar uma forma interativa

Meu nome é Zoë, sou engenheiro de software e professor de filme. Você pode conferir meu trabalho aqui.

Este curso é para qualquer um que já teve interesse em aprender a programar.  Seu projeto de curso será criar seu próprio formulário usando JavaScript. 

Este curso incluirá um guia passo-a-passo sobre como aprender JavaScript do zero.

  • Como usar JavaScript com HTML
  • O que torna uma linguagem de programação diferente
  • Como escrever uma função

Depois de ter feito o curso, não deixe de fazer uma avaliação sobre o que você achou!

Recursos

github.com/zdavidson/sign-up-form

Equipamento de filmagem

  1. Canon 5D IV
  2. Canon 24 - 70 f/2.8
  3. Amaran 60x - acessível e poderoso
  4. Teleprompter Desview T3
  5. Montagem de mesa pequena
  6. Sennheiser MKE 600
  7. Braço do microfone Neewer
  8. Zoom H4n Pro

Equipamento de desenvolvimento

  1. M1 Macbook Pro 13"
  2. Teclado mágico da Apple
  3. Logitech MX Anywhere
  4. Suporte duplo para laptop
  5. LG 4k 27"
  6. Cadeira de mesa ergonômica - barata
  7. Bose QC 35 II
  8. AirPods Pro
  9. Monitor e stand Espresso (viagem) - incrível

Conheça seu professor

Teacher Profile Image

Zoë Davidson

Software Engineer & Cinematographer

Professor

Hey! I'm Zoe, a software engineer, filmmaker, and former professor from Toronto, Canada. I have an MFA in Film from Howard University, and also do work as a software engineer.

In the past, I've worked for the University of the District of Columbia, the Academy of Motion Picture Arts and Sciences, Lionsgate, Huffington Post, and I'm a member of organizations like the Canadian Society of Cinematographers.

The films that I've worked on have been featured at festivals around the world, including Sundance, ABFF, Trinidad Tobago Film Festival, and CaribbeanTales.

Check out my latest work, here: zoeahdavidson.com

Visualizar o perfil completo

Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução: Javascript, vamos falar sobre JavaScript. Ao contrário do HTML e do CSS, que são linguagens de marcação e folha de estilo, respectivamente, o JavaScript é uma linguagem de programação semelhante a Python, Java e O que o JavaScript nos permite fazer é introduzir lógica em nossos sites atualmente estáticos ou imutáveis Por exemplo, se você tivesse um formulário que permitisse que um usuário se inscrevesse em seu site, não seria ótimo se, depois de fazer login, ele fosse saudado pelo nome em fosse saudado pelo nome vez de receber um olá genérico Isso é algo que o JavaScript nos permitirá fazer. Alto. Zoe Davidson, engenheira de software e professora engenheira de software e Vamos mergulhar nos meandros do JavaScript e das linguagens de programação em geral 2. PROJETO DO CURSO : Vamos usar esse pequeno formulário que criamos aqui e, na verdade, vamos usá-lo para dar aos nossos usuários nossa resposta quando eles enviarem suas informações 3. Linguagens de programação: Linguagens de programação. Então, como já discutimos, o JavaScript é uma linguagem de script que permite que você introduza lógica e funcionalidade em suas páginas da web Mas como ele faz isso? Como também mencionamos, o JavaScript é uma linguagem de programação. Há várias coisas que a maioria, se não todas as linguagens de programação, têm em comum. Assim como outros tipos de linguagens baseadas em computador, as linguagens de programação são, em suas formas mais simples, apenas formas de falarmos com o Javascript, em particular, nos permite, como programadores interagir com a Web por meio do DOM ou do modelo de objeto do documento O DOM é uma interface de programação para documentos da web e atua como uma representação dessa página para que ela possa ser interagida, atualizada e modificada com base na entrada e interação do usuário Javascript, em particular, é a linguagem que usamos para interagir com o DOM. E 98% de todos os sites usam JavaScript no lado do cliente. As linguagens de programação também têm sua própria sintaxe exclusiva Assim como em outros idiomas, como inglês e francês, existe uma sintaxe que define e explica as maneiras pelas quais as palavras se juntam para formar frases, parágrafos, linguagens de programação da mesma forma, cada uma tem sua própria sintaxe para determinar o que constitui uma linha completa de código Por exemplo, assim como na aula de gramática da escola, passaremos uma boa quantidade de tempo aprendendo e discutindo sintaxe para que possamos garantir que estamos falando o idioma corretamente Afinal, pense importância das vírgulas no idioma inglês Você já deve ter ouvido falar de outras linguagens de programação como Python, C, Ruby, java e Dependendo do tipo de aplicativo que você deseja criar, uma dessas linguagens de programação pode ser mais adequada para a tarefa do que outras. Todas as linguagens de programação têm seu próprio caso de uso e propósito exclusivos. O objetivo deste curso é aprender como interagir e criar aplicativos para a web. A melhor linguagem de programação que podemos aprender é o JavaScript. Há várias outras coisas que todas as linguagens de programação têm em comum, incluindo variáveis, estruturas de controle e estruturas de dados. Entraremos em cada um deles em tempo hábil. Agora que você sabe um pouco mais sobre o que é JavaScript e como ele se relaciona com o desenvolvimento web Vamos começar a escrevê-lo 4. Configuração: Há dois lugares onde o JavaScript pode ser escrito em arquivos HTML ou em seu próprio arquivo JavaScript dedicado. Se quisermos escrever JavaScript em um arquivo HTML, basta adicionar a tag de script à seção principal do documento. Essa tag de script é reservada para todas as linguagens de script, que são linguagens nas quais você pode executar comandos com largura, e é aqui que nosso JavaScript poderia teoricamente viver Tudo o que você escrever entre essas tags será compilado e interpretado como JavaScript. Bem, isso é bom para aplicativos muito pequenos. Isso pode ficar um pouco complicado quando começarmos a criar sites cada vez mais complexos. Nesse caso, podemos utilizar o segundo lugar em que o JavaScript pode ser escrito em seu próprio arquivo e apenas utilizar uma tag de script como referência, criar um arquivo JavaScript separado, App.js, e conectar os dois. Como você mencionou, há dois lugares em que o JavaScript pode ser escrito em um elemento de script na página HTML entre duas tags de script ou em seu próprio arquivo. Se fôssemos escrevê-lo dentro do arquivo HTML, escreveríamos assim. Criamos nossa tag de script na cabeça e depois escrevemos nosso JavaScript. Então, escrevemos como console.log, Hello, World, salve. E então, se acessássemos nossa página da web, veríamos no console que registramos o Agora, isso não é uma má ideia quando você está fazendo projetos muito menores, mas, como você pode ver, não é necessariamente uma coisa prática de se fazer. Se você tiver vários componentes e várias camadas. Você pode imaginar que seu arquivo HTML começaria a ficar muito longo. Como uma boa regra de prática, uma boa ideia é manter em mente que você realmente não quer arquivos mais de 100 linhas , a menos que seja um componente particularmente complexo que precisa de toda a lógica para estar tudo junto. Idealmente, você deseja dividir as coisas em pedaços e integrá-las conforme necessário. Para isso, você deseja colocar seu JavaScript em um arquivo separado. Então, vamos nos livrar disso. E isso é, na verdade, criar um novo arquivo, e vamos chamá-lo de app.js. Como o JavaScript é uma linguagem de script, o elemento script nos permite conectar coisas que são scripts Assim, podemos fazer o script e, em seguida, podemos fazer exatamente como fizemos com a folha de estilo, barra de ponto e selecionar app.js e ter nossa tag de script fechada Tudo bem, lá vamos nós. Pronto para ir. Tudo bem, minha tag de script agora está conectada 5. Escrevendo JavaScript: Escrevendo JavaScript. Agora que sabemos onde o JavaScript é usado e como ele funciona teoricamente, é hora de aprender a escrever Se você é iniciante na programação de JavaScript, levaremos um pouco mais de tempo para aprender do que HTML e CSS. E isso é completamente normal. É porque você não está apenas aprendendo outra linguagem nova, mas também está aprendendo uma linguagem de programação e alguns dos principais conceitos por trás da programação em geral. Mas não se preocupe, se você continuar com isso em breve, será tão fácil quanto qualquer outro idioma. Primeiro, vamos entrar nesse arquivo app.js vazio. Tudo bem, então vamos testar nosso link para ter certeza de que está funcionando Então, vamos fazer um console.log e digitar hello world, salvá-lo e vê-lo em um console. Incrível. Você já está escrevendo JavaScript. Agora, o que você acabou de fazer lá? Você simplesmente instruiu o console, que é aquela janela na guia do Chrome, a registrar ou exibir, o que você colocou dentro desses dois colchetes O Console.log é um método essencial que até mesmo engenheiros de software avançados usam, pois é uma ótima maneira descobrir onde você pode ter cometido um erro em seu código. Um processo conhecido como depuração. Por enquanto, não precisamos desse código, então vamos comentá-lo. Para comentar algo. Em JavaScript, você mantém pressionado o botão Comando e pressiona a barra para frente e, na verdade, ele apenas comentará. Então, comentar significa que você não precisa usar esse código Não está mais funcionando ativamente. Você sempre pode inusitá-lo e trazê-lo de volta para sua página Mas você não precisa necessariamente de comentários, é outra ótima maneira de deixar notas mais amigáveis para outros desenvolvedores Então, você pode dizer que isso é um comentário e apenas dizer às pessoas o que você está tentando fazer. O trabalho delas poderia dizer que este é um registro de pontos do console de teste. Assim, você pode informar as pessoas como “Ei, esse registro do console não é importante” Os comentários são realmente ótimos. Acho que mais pessoas deveriam colocar mais comentários no código para que outros desenvolvedores, quando estiverem trabalhando juntos, possam entender por que alguém fez uma escolha simples. Você não quer colocar muitas linhas com um comentário, mas apenas uma linha curta, um trecho rápido só para dizer: Ei, isso é o que eu fiz isso, por que fiz isso? Acho que é uma prática muito boa. 6. Variáveis: Variáveis em ciência da computação, dados são qualquer coisa que seja significativa para o computador. O Javascript fornece oito tipos de dados diferentes que são indefinido, nulo, booleano, string, número, objeto, big, objeto, big, Neste curso, vamos nos concentrar apenas nos seis primeiros, pois, como engenheiro novato, um computador a você raramente encontrará esses últimos tipos de dados para ajudar entender o que ele pode não fazer com um dado Por exemplo, 12 pode ser um tipo de número ou um tipo de string. Se for um tipo de número, o computador o trata como tal. E pode ser usado em todos os tipos de operações matemáticas, como adição e subtração Por exemplo, se for uma string, por outro lado, ela será tratada como uma linha de caracteres, como uma frase ou outro grupo de letras. As cadeias de caracteres são grupos de caracteres usados para armazenar linhas básicas de dados que não são números As sequências de caracteres sempre têm aspas, enquanto os números não, e também são sempre números Todos os dados não precisam apenas de um tipo, mas também de um local para armazená-los para que possam ser acessados repetidamente. Seria uma experiência terrível se você digitasse um monte de informações em uma página da web e simplesmente desaparecessem quando você saísse da É aqui que as variáveis entram em jogo. As variáveis atuam como locais de armazenamento para cada valor específico. Você pode ter se deparado com variáveis como X e Y e suas aulas de matemática do ensino médio As variáveis de programação seguem o mesmo conceito. Eles são uma representação dos dados que estamos armazenando. A única diferença é que, com o JavaScript, essas variáveis podem ser qualquer um dos oito tipos que mencionamos no início desta lição. Por exemplo, se estivéssemos codificando um site com um formulário que solicita aos usuários seu primeiro nome Armazenaríamos os dados que eles nos forneciam em uma variável. Vamos marcar isso como um exemplo para entendê-lo melhor. Tudo bem, então eu criei a pasta chamada learn JS Vou criar um novo arquivo. Vou chamá-lo de app.js. Vamos continuar falando sobre as diferentes partes do JavaScript e como elas funcionam. Então, como acabamos de falar, as variáveis são uma forma de armazenarmos dados em JavaScript. Então, por exemplo, se tivéssemos um formulário de um site com um formulário que perguntasse o nome dos usuários. Provavelmente gostaríamos de ter alguma maneira de obter essas informações. Então, vamos criar um arquivo HTML rápido e criar esse formulário que possamos usar Tudo bem, então, neste formulário, será um pouco semelhante a outro formulário, com algumas diferenças importantes Então, vou criar uma entrada de tipo, texto número de texto. E colocaremos isso como idade, faremos com que seja perfeito. Então, esse é um formulário muito simples, que simplesmente pediremos ao usuário seu primeiro nome, sobrenome e idade. Você deve ter um botão de envio. Portanto, o tipo de entrada é igual ao botão. E vamos focar apenas no botão. E diremos Enviar. Vamos conectar nosso app.js ao nosso HTML, como fizemos antes com uma tag de script. E a fonte será dot slash app.js. Feche isso, guarde isso, e estaremos prontos para ir. Então, se voltarmos para o local, localhost 50, 50, você sabe, eu acho que é isso A terceira é que, tudo bem, nós temos, somos uma forma muito, muito básica Tudo bem, então temos nosso nome, sobrenome ou idade e nosso botão de envio Então, queremos ir em frente e preencher esses dados , certo? Digamos que você queira que um novo usuário acesse seu site e preencha essas informações. Hum, você dirá como John Brown e sua idade de 45 anos, certo? E ele enviará essas informações. Legal. No entanto, nada acontece quando você envia as informações. As informações não vão a lugar nenhum. O que queremos fazer agora é salvar essas informações em uma variável para que pelo menos possamos usá-las Então, se formos inspecionar aqui, conferir nosso console, uma coisa que podemos fazer é realmente enviar essas informações para uma variável Então, quando o usuário pressiona enviar, podemos ter nosso Formulário, enviar os dados para algum lugar O que vamos fazer aqui é criar uma variável. Portanto, existem dois tipos de variáveis. Existem variáveis constantes e variáveis que podem mudar, conhecidas como variáveis let, variáveis constantes Uma vez que você atribui um valor a elas, o valor não pode mudar As variáveis Let, por outro lado, podem mudar. Então, queremos decidir qual tipo de variável queremos usar para a situação. Pessoalmente, eu recomendaria usar uma variável principal porque na verdade não sabemos o valor da variável antes de o usuário enviar seus dados Podemos deixar o usuário e fazer que agora a variável user não esteja configurada para nada. Ainda não significa nada, mas, eventualmente, podemos atribuir um valor a ele É uma boa prática inicializar uma variável com um valor, mas isso não é obrigatório Quando você não inicializa uma variável com um valor, ela obtém o valor padrão de undefined O terceiro tipo de dados discutirá Todos os meios indefinidos são que ainda não foram definidos quanto ao que são Portanto, a variável ainda não existe. Isso não significa que ele tenha um valor de nada, no entanto, esse é o tipo de dados de nulo Nulo e indefinido são dois tipos de dados muito semelhantes, mas com diferenças sutis, mas com diferenças sutis, você pode atribuir uma variável ao valor de nulo e ela ainda existirá de É como dizer ao computador que você tem uma caixa em sua unidade de armazenamento, mas sabe que ela está vazia. Se você atribuir essa mesma variável ao valor de undefined, agora você está dizendo ao seu computador que a caixa não existe de fato Saiba, intencionalmente não é nada enquanto indefinido não existe Se quiséssemos criar um valor constante de variável, podemos fazer o usuário CONST e depois fornecê-lo, poderíamos, bem, vamos chamar isso Você não pode, você também não pode ter variáveis com exatamente o mesmo nome. Então, podemos chamar isso de idade constante. E então poderíamos configurá-lo para um número específico ou uma string. Então, podemos configurá-lo para isso, ou podemos defini-lo para 45, certo? Seja como for, o que quer que queiramos definir, usamos os iguais para realmente atribuir um valor a uma variável Então, ao contrário da matemática, somos iguais a I1 mais um, é Não é um operador matemático nesse sentido, é na verdade uma tarefa. Um operador de atribuição sobre o qual falará o sinal de igualdade. Falaremos um pouco mais tarde sobre as outras maneiras pelas quais podemos usar iguais para realmente significar que isso é igual a isso Mas, por enquanto, o que precisamos saber é que o único sinal de igual no singular é a atribuição Então, a idade é 45. Podemos pensar nisso assim. Como coloquei o valor aqui, é uma boa ideia inicializar uma variável com um valor Portanto, podemos realmente deixar o usuário igualar essas aspas vazias Aspas ou a forma de identificar uma sequência de caracteres. Se você colocar, seja igual a, deixe o usuário ser igual às aspas, está apenas dizendo ao computador que isso provavelmente será um valor de string Mais tarde, podemos realmente exigir que seja uma string ou um número ou o que quer que seja Mas isso é algo que podemos fazer com o TypeScript. Mas e se não inicializássemos esse valor, certo? Tipo, e se tivéssemos isso assim, que valor você acha que teria? Já falamos sobre os diferentes tipos de dados, então há um número de string, mas provavelmente não seria nenhum deles se não dermos um tipo a ele. Bem, se você não tiver certeza sobre algo, podemos simplesmente Então, se usarmos o log de pontos do console, usuário verá que o usuário está realmente indefinido E se você se lembrar, indefinido significa que algo não existe. Nulo significa que é essencialmente zero porque é indefinido. Eu sou, isso significa que ele ainda não existe. Depois de atribuirmos um valor a ele, ele então existirá Por outro lado, se registrarmos a idade do console, devemos obter 45. E é para isso que o atribuímos. Outra coisa legal que podemos fazer é registrar no console o tipo de uma variável específica e ele realmente nos fornecerá o tipo. Então, nesse caso, o tipo de idade é um número porque atribuímos um número a ele. Você também pode, como falamos antes, usar, podemos conversar, podemos atribuir a uma variável um valor nulo, certo Então, CONST, nada. Poderíamos defini-lo como nulo e salvá-lo. E então, se não fôssemos nada em Console.log , deveríamos saber. Como você pode ver aqui, temos null no console. Então, dissemos especificamente ao computador que ele é nulo, não é nada, não foi feito para ser lido Porém, uma coisa que realmente deve ser lembrada, especialmente em ciência da computação e com variáveis, é a ortografia Com o JavaScript, na verdade, é possível ter dois tipos diferentes para variáveis diferentes com a mesma grafia Então eu poderia realmente fazer CONST, idade. Eu posso fazer idade com letras minúsculas. Eu poderia envelhecer com letras maiúsculas. E isso não vai me dar um erro. No entanto, no futuro, se eu escrever incorretamente onde eu uso a idade, como se eu colocasse a idade em maiúsculas em vez de minúsculas no console , eu poderia como se eu colocasse a idade em maiúsculas em vez de minúsculas no console errar a idade eu Portanto, a melhor prática é não fazer isso e, na verdade, usar apenas uma forma de ortografia e capitalização para suas variáveis Falando em ortografia e capitalização em JavaScript, verdade usamos um método especial de capitalização Camelcase é onde você tem a primeira letra. A primeira letra da primeira palavra é minúscula, e a primeira letra todas as palavras seguintes é Então, CamelCase, é como um camelo. Então, quando você precisa criar mais de uma variável, você sempre pode usar camelCase ou talvez queira ser um pouco mais descritivo Então você poderia dizer CONST, o sobrenome do usuário é igual a marrom. E aí está. É assim que você escreveria isso com maiúsculas e minúsculas, o último é maiúsculo e o nome também é maiúsculo Tudo bem, então vamos nos aprofundar um pouco mais para ver o que mais podemos fazer com variáveis, certo? Portanto, temos nosso sobrenome de usuário. Vamos criar um nome de usuário para John. Vamos supor que isso é o que o usuário inseriu em nosso formulário E então queremos escrever uma frase, talvez queiramos cumprimentar nosso usuário quando ele clicar em Enviar, queremos dizer oi Portanto, existem diferentes maneiras fazer isso. Mas uma coisa interessante que podemos fazer com variáveis é, na verdade, concatená-las Assim, podemos juntar variáveis diferentes para criar uma frase ou alguma outra sequência que seja significativa ou útil para nós ou para nossos usuários. Então use concatenação, o que você simplesmente faria, e diria que provavelmente salvou isso em outra variável, provavelmente salvou isso em outra variável Então você poderia dizer CONST, saudação. E então você não pegaria o nome real do usuário, mas a variável que representa nome deles e os colocaria juntos em uma frase. Então, poderíamos dizer, oi. E então usamos o símbolo de mais para basicamente simbolizar o que queremos que essas duas coisas sejam somadas Agora, como em matemática, mas como conectado, high user, user, FirstName e LastName Então, pode até terminar com um ponto de exclamação, porque estamos ansiosos para falar com essa pessoa E então temos nossa saudação. Saudação é igual a oi mais qualquer nome de usuário, mais qualquer que seja o sobrenome E você sabe o que? Para uma boa prática, deixe-me colocar um pouco de espaço aqui apenas para ter certeza de que está formatado corretamente. Tudo bem, vamos continuar e registrar a saudação do console e ver o que recebemos. Lá vamos nós. Oi John Brown, plano de estudos. Está muito animado. Vamos tirar o primeiro. Diz: Oi John Brown. E é basicamente assim que a concatenação funciona. Você pode pegar sequências de caracteres, você pode pegar variáveis e conectá-las para criar envios que sejam significativos para as pessoas ou outro uso significativo seja assim Outra coisa interessante que você pode fazer com variáveis, especificamente com cadeias de caracteres, é descobrir quantas letras estão nelas. Porque cadeias de caracteres são na verdade apenas um conjunto de letras, é a lista de letras Na verdade, eles também se enquadram tecnicamente em outro tipo de dados, que é uma matriz, sobre a qual falaremos um Mas um dos métodos disponíveis ou dos recursos que você obtém como resultado do uso de matrizes é que você pode saber quanto tempo elas duram Então, se eu quisesse ver quantas letras estão na string de saudação, eu posso basicamente fazer a criação de console.log e, em seguida, colocarei um ponto depois dela para especificar que há um método nessa variável que eu quero acessar Dot basicamente é como uma forma de entrar em algo. Então, se eu tenho uma caixa e sei que há um garfo lá dentro. Posso pressionar como o garfo Box dot para colocar o garfo dentro da caixa e atingir o comprimento do ponto de saudação E como o comprimento é uma propriedade que está na saudação, ela deve nos dizer quantos caracteres estão na saudação Então, vamos continuar e registrar isso no console. 14. Quero dizer, se você calcular, é como o espaço HI J0 H BR OWN, e então há outro espaço E o ponto de exclamação final, é 14. Então, ele nos diz exatamente o tamanho de uma string ou de uma matriz. Portanto, é uma propriedade muito legal de acessar se você precisar saber o tamanho de algo, que será mais útil à medida que trabalharmos com conjuntos de dados cada vez maiores 7. Matrizes: As matrizes dizem que queremos armazenar vários nomes juntos para que possamos acessá-los mais tarde Nesse caso, usaríamos outro tipo de dados chamado matriz. Uma matriz é criada encapsulando os dados individuais dentro dela usando colchetes e vírgulas para separar cada Você pode ter qualquer número de elementos em uma matriz, mas é uma boa ideia usá-los somente quando tiver mais de um dado para armazenar. As matrizes podem até mesmo conter outras matrizes. Eles podem armazenar dados de qualquer tipo. Vamos tentar adicionar uma matriz à nossa página. Tudo bem, então outro fato interessante sobre linguagens de codificação e, em geral, é que a maioria das linguagens de codificação não começa a contar Eles começam a contar em zero. Isso é chamado de indexação baseada em zero e é exatamente a forma como aprendemos a contar Você encontrará muitas linguagens que fazem isso em JavaScript, é uma delas. Vai levar algum tempo para se acostumar, mas tenho certeza que você pode fazer isso. Tudo bem, então podemos usar a indexação baseada em zero, para realmente nos ajudar a entender o funcionamento interno de diferentes partes de dados, como matrizes e cadeias de caracteres para realmente nos ajudar a entender o funcionamento interno de diferentes partes de dados, como matrizes e cadeias de caracteres. Então, se pegarmos esse elemento de saudação aqui, pegamos essa saudação, a sequência de seleção Na verdade, podemos usar a indexação baseada em zero para obter uma letra específica de saudação O que faremos é usar algo chamado notação de colchetes. Portanto, há dois tipos de nova notação. Há notação de colchetes e notação de pontos. Na verdade, você já usou a notação de ponto usando a propriedade de comprimento do ponto de saudação Basicamente, o que a notação de pontos diz é: Ei, eu sei que você tem essa coisa e há algo dentro dela Se meu nome é Zoe, a notação do ponto pode ser: “ Ei, eu quero saber que Zoe é, Zoe é o sobrenome ou você sabe, é Essas são as coisas que você poderia marcar em mim se eu fosse um objeto JavaScript. Mas em termos do que temos aqui, temos uma saudação que é uma sequência de letras, uma frase E poderíamos acessar , na verdade, apenas uma letra dessa frase, se quiséssemos. Isso pode ser muito útil quando você tem talvez uma lista de dados, listas de nomes. E você só quer tirar o nome ou o sobrenome dessa lista ou algo parecido Mas podemos praticá-lo usando nossa sequência de saudações. A notação de ponto kiva para é que você precisa saber o nome da propriedade Então, se você está procurando a idade de qualquer que seja o seu objeto, você precisa saber que a idade existe. Caso contrário, ele retornará indefinido. Se eu disser balão de pontos de saudação, ele deve retornar indefinido porque não há nenhuma propriedade de balão em No entanto, se fizermos a notação entre colchetes, podemos acessar esses primeiros caracteres ou menos caracteres ou qualquer que seja o caso Então, eu menciono tudo isso com uma lata de índice baseada em zero, porque vamos colocar dois colchetes ao lado da Então, dentro desses colchetes, indicaremos qual personagem queremos acessar E se for o primeiro personagem, não vamos colocar um. Vamos colocar zero porque começamos a contar em zero quando passamos para a saudação colocamos zero e depois vamos salvá-lo E devemos obter um H maiúsculo. Vamos ver o que obtemos. Incrível letra maiúscula H. É assim que sabemos que está funcionando. Estamos recebendo a primeira carta. Se fizermos um para obter o eu, se fizermos para obter, devemos obter esse espaço, que pareceria nada. Mas na verdade é um pouco, então há pouco espaço lá. E então podemos fazer tudo isso até o fim. Agora, se quisermos obter a última letra da sequência de saudação, uma coisa que podemos fazer é acessar o comprimento e, em seguida, fazer o comprimento menos Então, podemos fazer uma saudação, podemos fazer uma saudação, e então podemos fazer dentro desse colchete fazer a saudação novamente, ponto Portanto, com a indexação baseada em zero, você sempre precisa subtrair um de qualquer número de valores para acessar esse último Então, se você tem cerca de 12344 peças de elementos pobres e sabe que você é, você é, você é uma sequência de quatro caracteres No comprimento, haverá quatro, mas quando você contar, na verdade será 0123 Então, a razão pela qual subtraímos um é para acessar esse último. Se subtrairmos, se colocarmos para, ele realmente tentará acessar algo que não existe. Portanto, queremos ter certeza de que subtraímos um quando procuramos o último elemento e uma string, faremos uma saudação com o comprimento do ponto menos E esse será, na verdade , o índice que estamos procurando acessar. Então, isso basicamente será computado em um número, o número correto do índice Então, se a saudação mudar de comprimento, talvez John mude seu nome para Stephen E agora a saudação não tem mais 14 caracteres. Talvez seja 17. Em vez de codificar 14 como essa saudação, o número da saudação ou Se já fizermos as contas, podemos simplesmente dizer, ei, qualquer que seja o tamanho do gradiente, não importa qual seja o nome da pessoa, só queremos obter o comprimento e o último caractere não é um ponto de exclamação É um período, seja o que for. Se clicarmos em Salvar, devemos receber um ponto de exclamação. Vamos lá, aqui mesmo no console. Ponto de exclamação. Tudo bem, então fomos apresentados ao conceito de matrizes Essas peças, esses conjuntos de dados em que podemos manter várias variáveis juntas, várias cadeias de caracteres juntas, talvez várias informações juntas Isso é incrível. Essa é uma maneira muito mais fácil de reunir todos os nossos dados em uma única peça. Então, o que podemos fazer agora é realmente usar essas matrizes a nosso favor Então, em vez de termos idade, usamos nosso primeiro nome, use seu sobrenome e saudação Na verdade, podemos manter tudo isso em uma matriz Podemos dizer CONST, usuário, primeiro usuário, primeiro usuário E em vez de ter tudo isso separadamente, podemos dizer que o primeiro usuário é igual Ou podemos dizer, em vez de, bem, vamos nos livrar desse usuário aqui. E podemos dizer usuário do CONST porque as matrizes são, na verdade Então, como dissemos que você não pode mutar, mude uma constante. Na verdade, você pode alterar as matrizes independentemente de elas serem declaradas com CONST constante ou com O que é realmente interessante sobre eles. Então, se quiséssemos criar uma string que represente nosso usuário, poderíamos criar a matriz com nossos colchetes e então dizer que o usuário é o primeiro nome do usuário Faremos o sobrenome do usuário do aplicativo do usuário. E então faremos que o usuário faça a idade, ou seja, R. Agora, nossa matriz de usuários. Essa matriz deve ter todas as informações sobre nosso usuário. Então, se eu for usuário do console.log, devo obter todas essas informações, sim, separadas por vírgulas Então temos John Brown com 45. Então isso é muito legal. Existe uma maneira de mantermos todos os nossos dados pessoais juntos, por exemplo, organizar nossos dados não precisa estar em todo lugar É uma maneira muito mais fácil de juntar as coisas. Então, como falamos antes, assim como com cadeias de caracteres, podemos acessar números diferentes dentro de nossa matriz, certo? Então, digamos que tivéssemos um monte de usuários diferentes, certo? Então, digamos que tivéssemos user1 FirstName e tivéssemos outro usuário, certo Então, digamos que tivéssemos, vou mudar isso para usar ou uma idade. E vou mudar esses dois para usuário para Const, usuário para idade é igual Tudo bem? Portanto, agora temos dois usuários. Temos o usuário um e o usuário final. Esse é um ótimo lugar para usar comentários, então podemos usar apenas R1 Podemos ser muito específicos o que estamos falando e fazer com que as coisas pareçam um pouco menos confusas do que ótimas que Então, digamos que esses dois usuários escrevam e digamos que queríamos armazenar apenas o primeiro nome desses dois usuários Poderíamos fazer com que o nome do usuário CONST fosse igual ao nome do usuário 1 e do usuário ao primeiro nome, certo Essa seria uma matriz que continha os dois primeiros nomes. O que é muito legal. Temos isso a nosso favor. Agora, digamos que quiséssemos acessar apenas o primeiro nome dessa matriz Então, o FirstName do primeiro usuário, poderíamos realmente acessá-lo usando a notação de colchetes. Então, poderíamos fazer console.log via console.log it. E poderíamos dizer o primeiro nome do usuário entre parênteses zero. E isso deve nos dar primeiro nome do nosso primeiro usuário, que é John. Fizemos isso corretamente. Recebemos o primeiro nome do usuário. Então, essa é uma forma muito útil, como quando talvez queiramos chamá-la a primeira pessoa que chega à festa e é encolhida no Queremos dizer, Hey John, e queremos recebê-los. Primeiro. Podemos repeti-las até chegarmos ao final da lista Porque esse é um recurso muito interessante sobre Arrays. Você vai manter todos esses dados juntos e acessá-los usando a notação de colchetes Mas digamos que você não necessariamente saiba o índice do que está procurando, certo? Digamos que você saiba que, você sabe, John deu a festa, mas você não sabe se ele é o primeiro, o último, o do meio. Preciso encontrar o nome. Bem, na verdade existe outro método. Assim como tínhamos o método de comprimento, existe o método find que podemos usar em uma matriz para encontrar um dado específico que estamos procurando, podemos usar o primeiro nome do usuário. Devemos usar nomes, nomes usuário, nomes. E podemos chamar ponto, tudo bem. E podemos ver que aqui estamos com nossa documentação. Na verdade, há algumas informações sobre isso. Portanto, é um método para matrizes de strings encontrarem uma string específica E então, basicamente, diz como escrevê-lo. Isso pode ser um pouco confuso, então vamos ver se podemos pesquisar no MTN Então, vamos voltar ao MTN e procuraremos encontrar. Tudo bem, array dot prototype dot, Fine, Cool. Portanto, o método find retorna o primeiro elemento na matriz fornecida. Esse lado satisfaz a função de teste fornecida. Se nenhum valor satisfizer a função de teste, undefined será Bem simples. Então, pegamos qualquer que seja nossa matriz de matriz, eles a salvaram, a resposta em uma variável aqui, então encontrada, e então a chamamos na matriz. Então, array dot quer que array1 dot encontre qualquer que seja o elemento Se o elemento for maior que dez. E então eles devem encontrar, eles devem obter, eu acho que pega o primeiro, o primeiro que é encontrado. Isso é muito legal. Então, vamos ver se podemos encontrar, então pegamos qualquer coisa. Então, basicamente, o que está acontecendo aqui é pegar elemento por elemento. É examinar a lista e tentar encontrar a primeira que atenda aos critérios. Então é preciso, está procurando por um elemento. Se esse elemento for maior que dez, ele salvará a resposta e a devolverá para dizer: Ei, encontramos a resposta. Então, vamos ver se podemos fazer a mesma coisa. Faremos valores constantes em libras iguais e elas não precisam ser encontradas em nada além de nomes de usuário constantes, Vamos procurar um nome. Se o nome for igual, será igual a não. Como falamos antes, existem dois tipos de iguais, certo Existem os iguais simples, os iguais duplos e os iguais triplos Essa é uma situação em que usaríamos dois iguais para dizer: Ei, eu quero que isso corresponda a isso Então, se o nome é igual a John, se o nome é John, então eu quero que você o encontre e o devolva para mim Então, se o console.log for encontrado, devemos pegar John. Então temos John, mas e se John não estivesse na lista? E se fosse Harry? Salvar isso ficará indefinido, assim como a função disse que faríamos Agora, e se quiséssemos encontrar algo um pouco mais interessante? E se quiséssemos encontrar um nome? Encontre um nome em que nome, o nome seja maior que, digamos cinco. Ambos se chamam John, devemos mudar isso. Então, vamos mudar isso para Stephen, como mencionamos. Portanto, se o comprimento do nome for maior que cinco, ele deverá retornar o nome. Portanto, não deveria devolver John, deveria devolver Steven Vamos ver. Incrível. Então, recuperamos Steven. Você pode ver como esses diferentes métodos começam a se somar e a trabalhar juntos para criar o que precisamos encontrar Esse é o básico da ciência da computação. Você está começando a trabalhar com algoritmos que já existem no computador Então você está no caminho certo para realmente aprender JavaScript. E, novamente, você pode estar se perguntando como eu conheço todos esses diferentes tipos de dados e métodos. Não é porque eu tenho a memorização. Como você pode ver, literalmente pesquisamos no Google tudo o que precisamos e tudo o que precisamos realmente não temos em nossas cabeças. Então, usei o método de comprimento sem muita dificuldade. Isso porque é algo que eu usei muito mas tudo bem é algo que eu não usei tanto. Então, pesquisei para ter certeza de que tenho a implementação correta. E eu não estava apenas tentando implementá-lo do nada, estava fazendo a coisa errada e recebendo erros porque foi apenas um erro tolo na minha implementação Antes de terminarmos falando sobre matrizes, vamos examinar mais alguns desses tipos essenciais de métodos que talvez queiramos usar Mais um mapa de codificação basicamente itera sobre a, uma matriz e retorna os resultados, incluindo essa iteração uma matriz e retorna os resultados, incluindo essa Portanto, geralmente é feito para fazer algo com a matriz. Então, se eu usar o primeiro mapa de pontos, quero pegar o nome e concatenar o nome, talvez nome mais sol os nomeie Johnson e Stevenson E eu quero que ele devolva o mapa. Então, vamos mudar isso para mapeado. Em teoria, eu deveria pegar Johnson e Stevenson quando os mapeasse Então, vamos ver. Agora temos uma matriz com Johnson e Stevenson. Assim, você pode usar IMAP sobre itens individuais na matriz e fazer alterações Então, usando o mapa, o próximo, vamos falar sobre cada um, pois cada um é muito semelhante ao mapa, exceto por uma diferença fundamental. Na verdade, não retorna nada. Então, como conseguimos salvar o mapa em uma função, em uma variável e em um log de console com os quais , na verdade, não retornamos nada para cada um. Então, é para mudar como a coisa real em si. Então, se eu quisesse mudar o primeiro nome de John, ou se eu quisesse criar uma nova matriz, talvez eu tenha criado uma matriz vazia Então, conc, matriz vazia. E não tinha nada nele. Como você se lembra, eu disse antes que as matrizes são mutáveis. Isso significa que você pode adicionar e retirar coisas delas mesmo depois de terem sido criadas com uma constante. Então, digamos que eu queira adicionar coisas, adicionar nomes a essa matriz vazia. Então, talvez eu tenha escolhido os nomes dos usuários e em vez de matemática I para cada um, fiz um para cada um. Então, para cada nome, não vou salvá-lo em uma variável desta vez, vamos apenas usá-lo como está. Vamos, para cada nome, usar um método chamado push. Vamos pegar nossa matriz vazia e vamos pressionar, vamos empurrar o nome. Então isso significa que estamos literalmente usando esse nome. Estamos empurrando-o para a matriz. Portanto, deve haver um Johnson ou deve haver um John e um Steven em nossa matriz vazia Vamos configurar isso e usar o array vazio console.log. Na verdade, vamos esvaziar a matriz console.log duas vezes. Isso é console.log antes e depois. Portanto, devemos ver apenas colchetes vazios, colchetes e, em seguida, devemos ver John e Stephen Perfeito exatamente o que temos. Colchetes vazios e icterícia, mesmo sabendo que está sendo chamada , estão realmente Ótimo. Vamos conferir outro método. Fatia. Tudo bem, então quando você está trabalhando com slice, você pode basicamente decidir qual seção da matriz você gostaria de trabalhar É muito interessante fazer isso quando você está realmente trabalhando com nomes, por exemplo. Então, se eu pegasse Const, sliced, se eu estivesse criando uma variável chamada sliced, e eu pegasse E então eu fiz uma fatia nela. Onde eu comecei talvez com a segunda letra e terminei com a quarta letra, eu deveria pegar uma fatia do nome de Stevens E se eu consolar um registro de pontos fatiado recebo uma dica, que está no meio do nome Stevens entre os entre É assim que você cortaria, você cortaria como. É isso para mim. Essa é a melhor maneira de usar slice em uma string ou algo parecido, onde eu só preciso de um subconjunto Tudo bem, o próximo método que vamos finalizar a compra é emendar Splice é muito semelhante ao Splice, mas na verdade muda a própria matriz Então eu chamo de splice em uma matriz. Isso me trará de volta uma nova matriz. Isso mudará essa matriz desde o início, dividirá um pouco diferente da fatia necessária. Na verdade, vamos chamar splice nos nomes dos usuários Então, o que vamos fazer é colocá-lo com um número inicial. Então, começaremos talvez no índice um, que é o usuário dos primeiros nomes. Então vamos, vamos deletar um. Vamos deletar o nome de Justice Stevens e, em seguida, adicionaremos um novo nome e adicionaremos o nome de Harry Então, vamos salvar isso e depois usar o nome do usuário console.log. Desculpe. Então, o que isso deveria ter feito era pegar isso, modificá-lo e retorná-lo como uma matriz mutada. Vamos ver se funcionou. Incrível. Agora temos 0 e vamos nos livrar desse console.log. Incrível. Então agora temos John e Harriet em vez de John e Então foi assim que você juntou basicamente e colocou algo novo lá dentro Mas você não precisa colocar algo novo e pode simplesmente retirá-lo e deixá-lo assim. Tudo bem, então o próximo que vamos dar uma olhada é o shift Shift é outro método que também modifica uma matriz. Quando você chama shift em uma matriz, ela realmente remove o primeiro elemento. Agora você pode salvar esse primeiro elemento ou retornar a matriz modificada. A escolha é sua. Vamos dar uma olhada em como usaríamos isso em nossa matriz de nomes de usuário. Poderíamos chamar o nome de um usuário de dot shift. E não precisamos passar nenhum parâmetro. Vamos chamá-lo assim. Então, se usarmos o primeiro nome de usuário do console , devemos saber quem deve receber o nome de Stevens? Então, sim, há apenas infiltração. Mas se usarmos o console.log, deveríamos realmente obter o nome de John. John, lá vamos nós. Portanto, depende do que você está tentando obter. Você está tentando obter o primeiro nome? Estamos tentando obter a lista inteira sem o primeiro elemento, ou você está tentando obter a lista inteira sem o primeiro elemento. Qual dessas duas maneiras você acessará esses dados, mas a escolha é sua novamente, a última que vamos finalizar a compra hoje é unshift Então, como mencionamos, unshift adiciona elementos ao início de uma matriz Então, digamos que temos seu primeiro nome, mas o que adiciona um novo nome à frente da matriz. Faremos os nomes dos usuários, desativaremos o ponto. E adicionaremos Harry, nome de Harry ali mesmo. Se usarmos o console.log firstName, novamente, devemos obter a matriz com o novo nome nela E lá vamos nós, Harry, John e Steven. E aí está. Esses são vários dos métodos essenciais você pode usar em matrizes que, tenho certeza serão úteis à medida avança em sua jornada com o JavaScript. 8. Funções: Funções, eu quero até agora, temos feito tudo forma bastante manual. Quero dizer, com certeza. O computador está fazendo a maior parte do trabalho, mas há uma maneira de tornar as coisas ainda mais fáceis para nós Em vez de nos repetirmos repetidamente quando estamos organizando nossos dados ou solicitando dados ao computador, podemos usar algo chamado função Uma função é um trecho de código reutilizável que nos permite acessar a mesma lógica repetidamente sem reescrevê-la Também é possível nomear funções para que possamos acessá-las em qualquer lugar em nosso arquivo ou programa. Vamos refatorar nosso código para criar algumas funções básicas para facilitar nossa vida Tudo bem, então a próxima coisa sobre a qual vamos querer falar são as funções Acabei de mencionar antes. As funções nos permitem parar de fazer tudo manualmente e realmente aproveitar o fato de estarmos fazendo programação de computadores. E podemos permitir que o computador faça muito desse trabalho por nós. Então, vamos dar uma olhada em como escreveríamos uma função. Portanto, em nosso arquivo app.js, a maneira pela qual realmente começaríamos a escrever uma função, existem duas maneiras, mas a maneira mais comum de fazer isso agora é usar um Const, assim como vimos antes, para inicializar o nome da Então, se fôssemos nomear uma função, vamos chamá-la, por exemplo, de minha função. E então, em vez de fazer igual e colocar apenas o valor aqui, na verdade colocaríamos iguais e depois os parênteses e outro igual e depois os parênteses e outro Na verdade, isso é chamado de sintaxe da função de seta. E é um tipo particular de forma de escrever funções, mas é uma das mais sucintas Então, é muito comumente adotado. Depois da nossa flecha. Depois da nossa flecha, na verdade usamos os colchetes encaracolados e pronto É assim que você escreve o formato básico para uma função. Mas o que uma função faz? Ele pega uma parte da lógica e basicamente a implementa para nós. Então, na minha função, poderíamos simplesmente dar a ela algo realmente simples fazer, como console.log. E então, como vimos antes, Hello World. Então, cada vez que essa função for chamada, ela será console.log. Ele será conectado ao console HelloWorld. Mas como podemos realmente fazer isso funcionar? Bem, quando você tem uma função, você não pode simplesmente escrever a função e esperar que ela seja chamada, esperada para ser executada. Você realmente tem que ligar para ele. Então, chamar uma função é muito simples. Tudo o que você faz é digitar o nome da função, como você já nos viu fazer antes, e colocar os parênteses atrás dela. E depois de salvá-lo, ele chamará a função. Então, se acessarmos nosso navegador e conferirmos o console, veremos que diz helloworld mais uma vez É muito legal trabalhar com funções. Você pode imaginar o nível de complexidade que pode colocar nessas funções e chamá-las repetidamente para qualquer número de problemas. Portanto, há coisas realmente boas com as quais trabalhar. Outra coisa que você deve saber é que as funções podem receber argumentos da mesma forma que mencionei antes, o log de pontos do console é um tipo de função. Helloworld é na verdade um argumento abordado por console.log Então, apenas em nossa função aqui, poderíamos realmente mudar isso um pouco. Nós poderíamos dar, nós poderíamos fazer isso. Podemos fazer disso uma função que realmente imprime no console. Podemos criar nosso próprio console.log se você quiser. Então, digamos que chamamos isso de nosso próprio registro do console. Tudo bem, e isso é só para praticar. Na verdade, você não faria isso na vida real, mas diria que forneceria seu próprio registro do console e, em seguida, nomearia um tipo de parâmetro. Você pode fazer isso simplesmente chamando-o de R1, R1 ou R2, dependendo de quantos argumentos Mas, na verdade, você pode chamá-lo do que quiser. Então você poderia simplesmente dizer valor. E então, em vez de colocar o console de codificação, o código rígido e o código rígido no console, registre o HelloWorld. Na verdade, podemos simplesmente passar a propriedade de valor e usá-la em vez disso Agora, tudo o que eu digitei como parâmetro em nossa própria função de registro do console, quando eu a chamo, ela imprimirá isso no console Se eu dissesse: Olá a todos. Em vez de hello world, quando eu voltar para o console, ele realmente imprimirá Olá a todos em vez de HelloWorld ou valor Todos os tipos de funções podem receber parâmetros, desde que tenham essa capacidade e algo a ver com esse parâmetro, que é outra parte realmente incrível das funções, certo? Podemos usar isso de várias maneiras. Também podemos retornar um valor de uma função e depois salvar esse valor em uma variável. Essa variável pode então ser usada como qualquer outra. Essa é uma maneira muito útil de obter dados. Se sua função não tiver uma instrução de retorno, ela retornará indefinida Você pode usar esses tipos de funções para atualizar uma variável fora de si mesma sem precisar que os dados sejam retornados diretamente pela função Também podemos retornar um valor de uma função e depois salvar esse valor em uma nova variável. Então, por exemplo, se tivéssemos, digamos, que quiséssemos obter a soma de vários números, certo? Então, que tal fazermos CONST, soma é igual. E então alguns aceitarão, e serão necessários três argumentos. Vai levar R1, Argh Vai pegar o número um porque vamos pegar Eu faço o melhor para ser descritivo quando você está fazendo parâmetros, basta ver as pessoas que voltam e usam sua função, saber o que você queria que elas colocassem nela Então, vamos fazer m1, m2 e m3. E então, alguns retornarão apenas num1 mais num2 mais número três Então é isso. São necessários apenas três números e alguns deles no total Mas o que podemos fazer, na verdade, em vez de apenas chamar essa função, podemos conceituar. Podemos criar um, podemos criar uma variável chamada resultado e, em seguida, podemos salvar os resultados dessa função nos resultados dessa variável. Então, podemos fazer alguns dos números 12.3. E então, se registrarmos no console a resposta que registramos no console, ela deve somar seis. Então, vamos dar uma olhada. Se você vê aqui, somou seis e temos seis ou em seis é a soma da nossa função aqui. Então, essa também é uma maneira muito útil se você quiser ligar para algo e quiser salvar esse resultado e talvez usá-lo em outro lugar. Essa também é uma ótima maneira de fazer isso. Às vezes, você pode apenas querer saber se uma função está funcionando ou não. Você não precisa necessariamente de um valor específico retornado a partir dele. Nesse caso, usaríamos outro tipo de dados chamado booleano. Os booleanos são um tipo de dados especial que só pode ter um de dois valores, Essas palavras não estão escritas entre aspas e servem simplesmente para serem usadas como indicadores de se algo foi bem-sucedido ou não. Por exemplo, se você quiser saber se sua função foi executada conforme o esperado, você pode retornar true no caso de funcionar e false no caso de não funcionar. Às vezes, porém, você só quer saber se uma função está funcionando ou não. Talvez você queira apenas saber se um aspecto específico do seu aplicativo está funcionando ou não e queira que essa função seja executada se estiver funcionando, ou queira que essa função retorne true se estiver funcionando ou retorne false se não estiver. É aqui que entraremos nesses booleanos. Vamos usar as declarações if para nos ajudar a descobrir se alguém tem ou não idade para dirigir. Então, vamos fazer uma lista de idades. Vamos obter uma variedade de idades. E vamos fazer, vamos ver, 12 para 2.557,70. Então, queremos obter o número retornado de idades que são, de, que têm mais de 16 anos, certo? Hum, então podemos realmente criar uma função para filtrar isso para nós, certo? Então, vamos calcular o custo da idade de condução. Isso é o que chamaremos de nossa função. E basicamente o faremos. Agora vamos escrever nossa declaração if. A estrutura da declaração if é assim. Você escreve se, então essas são suas condições. Então, se, vamos ver, aceitar uma idade, se a idade for maior que 16, 16. Queremos que a função retorne verdadeira. Caso contrário, queremos que a função retorne false, certo? Se salvarmos o resultado. Se salvarmos o resultado em uma variável que chamamos de idade de condução com idades. E usaremos o primeiro ou o número e indexaremos um e depois usaremos o resultado console.log. Vamos ver. Vamos ver o que obtemos. Portanto, se a idade for maior de 16 anos, retorne verdadeiro, caso contrário, retorne falso. Falso. Então isso está correto porque a idade, o índice de agente um é na verdade quatro, o que não está acima de 16. Mas se mudarmos para um índice de quatro, por exemplo, ele retornará verdadeiro porque é uma nota, ou seja, 70 anos. Então, essa é outra maneira muito interessante de usá-la e provavelmente poderíamos implementá-la em algum tipo de verificação de motoristas, certo? Então, em vez de calcularmos uma variedade de idades, podemos concluir que a idade pode ser de um site em que se pergunta às pessoas se há ou não idade para dirigir, se você gostaria de perguntar se alguém quer comprar um carro. Portanto, verifique se há idade para dirigir. Você também pode usar algo assim em aplicações práticas. Operadores ternários, existem maneiras mais concisas de escrever declarações de if else usando algo chamado operador ternário Um operador ternário é apenas uma notação abreviada para ele. If else, declarações que podem condensá-lo em uma única linha de código Vamos dar uma olhada em como um exemplo disso poderia ser. Como você escreveria isso é dizer que apenas daria seu valor. Então você diria isso. Então, de dirigir por anos, idade por anos, você diria. E poderíamos até passar um número para ser honesto, se passássemos como 25. E então diríamos que se isso for verdade, se isso for verdade, queremos que volte a ser verdade. Caso contrário, queremos que ele retorne falso. E é assim que escreveríamos que, como isso funciona, a primeira peça é nossa condição. Seja qual for a comparação que estamos tentando fazer ou a situação que estamos tentando determinar. A primeira e depois perguntaremos: isso é verdade? Então, o que dissemos aqui é verdade? Se for verdade, na verdade trará esse primeiro valor, certo? Se for verdade, esse será o resultado ou os dois pontos aqui retornarão Falso, é falso. Se for verdadeiro, ele retornará essa primeira Condição ou falso, será o resultado, como já discutimos, ao contrário da matemática, equals é o operador de atribuição, não o operador não o O operador de igualdade é bastante semelhante. É apenas uma versão duplicada, dois sinais iguais. Você pode usar o operador de igualdade para determinar se uma coisa é igual à outra. O resultado de uma comparação usando o operador de igualdade sempre retornará um booleano, verdadeiro se a comparação for válida ou falso se não for Vamos dar uma olhada em alguns exemplos disso. Nós console.log. Um é igual a um. Veremos que basicamente isso retornará verdadeiro. Mas então, se fizéssemos um igual a dois, deveria ser falso Isso ocorre porque não necessariamente, bem, isso ocorre porque 1,2 são números diferentes, certo? Mas 1.1 são iguais. Mas quando fazemos um é igual a um, é igual a um na string, pensamos que ela retornará false, mas na verdade retornará mas Agora, esse último é interessante. Por que o número um coincide com a corda um? Isso porque o operador de igualdade de dois iguais não é o que você chamaria Isso permitirá que partes de dados que podem ser convertidas entre si retornem verdadeiras. No entanto, se você quiser ter certeza de que somente os dados do mesmo tipo retornam verdadeiros, você pode usar seu irmão mais velho, o operador de igualdade estrito, três sinais iguais. Vamos tentar. Agora, se quiséssemos comparar se o número um era realmente igual à string um. Queremos ter certeza, como saber os números da string. Nós usaríamos três sinais de igualdade, a igualdade estrita. E vemos aqui que, quando executamos isso, na verdade, ele nos dá o resultado de falso porque um, o número não é igual à string, mas temos que usar a igualdade estrita, que é o sinal triplo de igual para obter esse resultado, existem muitos tipos diferentes de operadores e JavaScript. Vamos dar uma olhada em mais algumas delas e ver como elas funcionam. Exclamação igual é um operador de comparação usado para testar se dois valores Ele compara dois valores e retorna verdadeiro se não forem iguais e falso se forem iguais Isso é usado para testar se um valor é menor ou igual a outro valor. Ele retornará verdadeiro se o primeiro valor for menor ou igual ao segundo valor e falso se o primeiro valor for maior que o segundo valor. Assim como em matemática, você também pode usar apenas o design menos que para comparar se o primeiro valor é menor que o segundo valor sem o sinal de igual maior que N igual Isso é usado para testar se um valor é maior ou igual a outro valor. Retorna verdadeiro se o primeiro valor for maior ou igual ao segundo valor e falso se o primeiro valor for menor que o segundo valor. Novamente, assim como na matemática, basta usar o símbolo maior que para comparar se o primeiro valor é maior que o segundo, omitindo a extremidade dupla do sinal de igual Esse é o operador lógico AND. É usado para testar se duas condições são verdadeiras e retorna verdadeiro se ambas as condições forem verdadeiras e falsas. Se uma das condições for falsa, esse é um operador OR lógico. Ela é usada para testar se pelo menos uma das duas condições é verdadeira e retorna verdadeira se pelo menos uma das condições for verdadeira e falsa se ambas as condições forem falsas. Quatro voltas. For-loop é um tipo de declaração de fluxo de controle, muito parecido com uma declaração if else. A diferença com os for-loops, no entanto, é que eles, como o nome indica, repetirão como o nome indica, repetidamente até que uma condição específica seja atingida por um determinado período A sintaxe básica de um for-loop é para condição de inicialização e, em seguida, incremento ou diminuição e, em seguida, qualquer código que você Vamos experimentá-los e ver como eles são usados na prática. Como mencionamos, o for-loop é um tipo de declaração de fluxo de controle, certo Então, basicamente, nos permite iterar sobre algo por um certo número de iterações até atingir o número determinado Então, como escreveríamos isso, digitamos quatro. Nós diríamos que para qualquer número seria inicializador. Há um inicializador como for, digamos que eu seja igual Executaríamos isso, isso, isso, isso em um loop até eu ser igual Então, digamos que o executemos até I ser maior que dez ou menor que dez. Executaríamos isso até que, até atingir essa condição, esse loop fosse executado. E então, toda vez que executamos o loop, cada iteração do loop, vamos realmente adicionar uma a ele para que realmente cheguemos ao final do loop Se não tivéssemos essa iteração real, ela funcionaria para sempre e isso terminaria, resultando em um loop infinito Então, para cada vez que eu correr, vamos fazer I mais mais, o que basicamente significa que eu serei eu mais ela mesma, eu mais eu mais um. Então, o que quer que eu seja no momento, acrescente um a ele. E, à medida que executamos essa função, vamos registrar o que eu sou no console. Então, vamos registrar o console I e depois ver quantas vezes eu recebo. Eu apareço. Eu acho que isso realmente deveria ser sim, eu menos de dez. Então, desde que eu tenha menos de dez anos, vou executá-lo. E então, quando eu tiver dez anos ou mais, ele parará de funcionar. Uma vez que vemos isso, é, uma vez que vemos que é executado e nos dá os números de zero a nove. Tudo bem, incrível. Enquanto faz ciclos. Agora que você pegou o jeito dos for-loops, vamos falar sobre Eles são realmente semelhantes aos for-loops, no sentido de que continuam a repetir repetidamente até que uma condição específica que eles diferem, no entanto, é que eles só têm a condição, então eles são executados enquanto essa condição é verdadeira. Embora os loops sejam um pouco complicados, porque em algum momento você precisa ter certeza de que essa condição será falsa Caso contrário, eles resultarão no que é chamado de loop infinito, o que não é bom. Isso pode travar seu navegador porque seu código nunca para de ser executado. Escopo. Um dos tópicos mais importantes para entender o JavaScript agora que começamos a falar sobre Funções é o escopo. E eu não estou falando sobre o enxaguante bucal. escopo se refere a quão acessíveis são visíveis, várias variáveis, funções e outros dados estão em seu código durante o tempo de execução. Há dois tipos de escopo em JavaScript, global e local. O escopo global é qualquer variável, função ou objeto que está bem fora de uma função e pode ser acessado por qualquer código no programa. O escopo local, por outro lado, é qualquer variável, função ou objeto que foi definido em uma função e, portanto, só pode ser acessado dentro dos limites dessa função Vamos dar uma olhada em como isso funciona na prática. Para mostrar basicamente como isso funciona, vamos criar um que diga VAR global, variável global. Devo dizer que sou global. E então teremos uma que criará uma função e, em seguida, aninharemos uma variável local dentro dela. Então, para dar uma ideia de como isso realmente parece na prática. Então, criaremos uma variável chamada barra local e ela dirá que sou local. E a partir desse ponto retornará , basta retornar a função. Portanto, quando tentarmos usar o VAR local do Console.log, se tentarmos fazer o login do console fora da função, como faremos aqui, log do console leucovorin verá que, na verdade, não conseguimos acessá-la Diz área de referência, barra local não está definida. E isso porque o console não consegue ver, certo? O resto do código não sabe que o local existe porque está preso dentro dessa função No entanto, se tentarmos registrá-la na função, você notará que ela meio que acendeu como nós e você notará que ela meio que acendeu como nós , na verdade, ela será adicionada quando chamarmos a função, é claro, ela na verdade registrará o console Barnes local Diz que sou local. Isso porque essa variável está basicamente presa dentro da própria função. Mas você verá que, se fizermos isso com a variável global, independentemente console registrá-la fora da função, ou se o console fizer login dentro da função porque é uma variável global, ela estará acessível nos dois lugares. 9. Objetos: Objetos. Um objeto é uma coleção de pares de valores-chave que podem representar um objeto do mundo real ou uma estrutura de dados complexa Os objetos são um dos elementos fundamentais do JavaScript. Na verdade, eles abrangem a maioria dos outros tipos de dados, desde estruturas de dados simples, como matrizes até cadeias de caracteres, e outras mais complexas, como classes, funções e Um objeto pode ser criado usando a notação literal do objeto, que usa chaves. As chaves em um objeto são sempre cadeias de caracteres, mas os valores podem ser de qualquer tipo de dados, incluindo Vamos escrever alguns objetos para ver um exemplo de como tudo isso funciona. Portanto, os objetos são uma das melhores partes do JavaScript. Basicamente, tudo o que sou JavaScript é construído sobre esses objetos. E assim como na vida real, objetos podem ser qualquer coisa. Vamos dar uma olhada em como realmente escrevemos nossos objetos. Então, se você quiser criar nossa primeira constante de objeto, meu objeto, e você escreve o nome dele da mesma forma que escreveria o nome de uma variável. Mas em vez disso, você coloca um sinal de igual e depois coloca aqueles colchetes ondulados E é assim que você sabe que é um objeto. Então, dentro de um objeto, eu disse que você pode colocar praticamente qualquer coisa. Mas a forma como estruturamos nossos dados dentro de objetos é que temos uma chave, que é basicamente o identificador, e depois um valor que corresponde a essa chave, que é basicamente o valor dela Isso é conhecido como um par de valores-chave. Eles funcionam em pares porque a chave é o identificador e o valor é o valor real Podemos acessar o valor da chave acessando a chave. Então, a maneira de fazer isso seria lembrar que falamos sobre notação de pontos antes Podemos usar a notação de pontos para acessar o valor da chave Então, a maneira de fazer isso, na verdade, é registrar meu objeto no console com a tecla de ponto e, em seguida, poderemos acessar qualquer que seja o valor. Então, o console registra minha chave de ponto de objeto e , em seguida, os resultados devem ser um valor. É assim que você acessa valores em objetos em JavaScript, da maneira que puder. E então, se você registrar o objeto em si no console, ele realmente fornecerá a coisa toda, a chave e o valor dentro dessas chaves No entanto, você pode fazer mais do que apenas objetos de valor-chave realmente simples. Os objetos podem, na verdade, conter outros objetos, como dissemos, eles podem conter matrizes, contêm cadeias Eles podem conter basicamente dados de qualquer tipo. A chave pode ser qualquer coisa. Não precisa ser a palavra-chave. Pode ser como Apple, pode ser qualquer palavra. Então você também pode, como eu disse, eu tinha objetos dentro de objetos. E, na verdade, esse objeto pode ser sua casa. Você pode fazer qualquer coisa, dizer casa e talvez falar sobre os diferentes aparelhos que você tem em sua casa, na sua cozinha, talvez tenha um fogão e um microondas e , eu não sei, como se não fosse um forno. Você pode ter fogão de microondas e talvez ter seu fogão, seu microondas e você está doente, certo? Isso é uma lista. Essa é a sua casa, esse é um quarto em sua casa, a cozinha. E então essa é uma lista dos eletrodomésticos na cozinha, certo? Ou listas dos objetos na pia da cozinha do tamanho de um eletrodoméstico. Mas vamos pegar essa ideia e ir um pouco mais longe. Vamos criar um objeto chamado minha casa. E vamos começar a preenchê-lo e ver como podemos ir longe com esses objetos. Então, vamos em frente e dar minha casa e endereço. Talvez vivamos, acrescente uma a três ruas principais. E então vamos dar a ela uma cidade. Talvez moremos em Nova York. Então vamos em frente e nós daremos. O que mais devemos dar a ele? Vamos dar alguns quartos, talvez um certo número de quartos. Moramos em Nova York, talvez apenas três quartos. É uma casa bem pequena em que moramos. Então vamos também dar, vamos dar alguns eletrodomésticos. Escreva este outono sobre essa tendência. Vamos dar uma lista de, uma lista de aparelhos. Então nós temos, vamos ver o que mais. Então, novamente, temos um microondas. O que mais? Temos um fogão, temos um microondas e, desta vez, temos lava-louças , troque da mesma. Ótimo. Vamos ver o que mais eu poderia fazer. Vamos fazer ocupantes, vamos fazer menos do que o número de ocupantes que temos em nossos residentes Então, vamos seguir em frente e listar. Mas vamos usar uma lista de objetos. Então, em vez de usar apenas um objeto singular, vamos fazer uma lista de objetos Então, vamos criar o primeiro. Will, dê um nome a ele. Vamos dizer que mãe, ela vai ter, digamos que vai fazer 29 anos novamente. E vamos dar a ela a ocupação de, vamos pegar esse padeiro e professor E aí vamos nós. Nós temos o ocupante. nome do primeiro ocupante é mãe, 29 anos, e a ocupação do ocupante é professora Incrível. Então, como eu estava dizendo, não podemos simplesmente gostar de ter mais de um ocupante, precisamos tê-lo em formato de lista Então, vamos colocar dentro desses colchetes, o que indica que é uma lista ou uma matriz E então vamos criar nosso segundo ocupante. Então, vamos preencher isso Faremos com que se chame pai, 35 anos, engenheiro de software. E vamos passar por isso muito rapidamente. Então agora podemos ir em frente e acessar as propriedades desse objeto, certo? Podemos acessar as propriedades aninhadas. Podemos registrar no console sua casa, minha casa, e então podemos registrar o ocupante no console E como você vê, ele realmente o pré-preenche aqui, o que é muito legal Esse é um recurso de JavaScript muito legal. O recurso Vs Code, devo dizer, onde uma vez que você tem um objeto, ele é automático É como um intellisense, eu acredito, mas diz quais propriedades existem nesses objetos. Muito legal. Assim, você pode acessar apenas imóveis. Então, vamos até os ocupantes e depois para os ocupantes porque é uma lista, lembre-se de que somos listas, não podemos simplesmente notação de pontos em Temos que usar índices. Vamos pegar o ocupante no primeiro índice que acessará o pai e, em seguida, nomearemos a ocupação do pai. Então, iremos para o primeiro índice e depois acessaremos a ocupação. E oh, aqui está um erro interessante, temos que referenciar o erro aqui. Isso porque o JavaScript é um pouco diferente do TypeScript, que funcionará em uma lição posterior Mas o JavaScript não necessariamente chama um erro quando algo é do tipo incorreto ou tem um valor incorreto dentro do próprio código ele o chamará quando você tentar executar esse código. Não é ideal para aplicativos maiores, porque você receberá muitos erros ao escrever o código e não saberá de onde eles vieram. Mas se você detectar o erro antes de executar o código, ao tentar salvá-lo, acho que é muito mais útil. Então, aqui, a razão pela qual recebemos esse erro é porque, na matriz, os valores um e dois não são reais. Eles não são chaves e, na verdade, não são cordas. Então, eles dizem que não há, não há nenhum valor de nome de variável um ou dois enquanto você escreve assim. Então, o que precisamos fazer é realmente transformá-los em cordas. Depois de transformá-los em strings, tudo o que precisamos fazer é executá-los novamente. E como você pode ver aqui, conseguimos acessar a ocupação do nosso pai Então, minha casa ou ocupantes acessando o ocupante no índice número um, engenheiro de software, esses são nossos pais Ocupações, funciona muito bem, como você pode imaginar o quão útil isso pode ser em um cenário em que você realmente gosta de talvez ter um objeto de usuário, como talvez você esteja construindo um tipo de site do Facebook e você tenha um usuário e ele tenha um endereço de e-mail , ele tenha uma senha , tenha amigos, tenha fotos, tenha todas essas partes diferentes dados associados a eles. Talvez você queira armazená-los em um objeto e, assim como nomear o objeto ou fornecer o objeto como um ID de usuário, pode fornecer a eles um ID dentro do objeto e, basicamente, armazenar todos esses dados complexos nesse conjunto de dados maior e mantê-los uniformes entre seus usuários Para que, se você tivesse um site com cerca de 500 usuários, abrisse a página de perfil deles pudesse acessar os dados de forma uniforme. Essa é outra grande coisa sobre objetos. Ele permite que você acesse os dados de uma forma muito, muito uniforme. E você não precisa necessariamente se preocupar se um dado não existe, então você pode fazer com que ele retorne um valor específico. Mas nove em cada dez vezes, supondo que os dados existam, simplesmente retornarão esse valor e você estará pronto para prosseguir 10. Formulário básico: Tudo bem, agora que terminamos aprender tudo sobre JavaScript, vamos colocá-lo em prática usando alguns dos elementos que criamos antes Em primeiro lugar, vamos usar esse pequeno formulário que criamos aqui e, na verdade, vamos usá-lo para dar a nossos usuários nossa resposta quando eles enviarem suas informações em nosso arquivo HTML de índice , como falamos anteriormente. Não seria muito legal se nossos usuários enviassem seu nome, sobrenome e idade? Talvez eles tenham recebido algum tipo de saudação personalizada, certo? Então, em vez de muito usuário ou apenas alto, talvez seja Oi John. Oi Stephen. Oi Harry. Então, vamos continuar e adicionar essa funcionalidade específica. Mas o que vamos fazer aqui é criar uma pequena tag P. E nós vamos, vamos dar uma identificação. Então, lembre-se de como falamos sobre IDs e como eles podem ser usados para direcionar elementos especificamente usando CSS. Eles também são muito úteis quando você está trabalhando com JavaScript. Então, uma coisa para a qual podemos usar IDs aqui é realmente direcionar um elemento específico. Então, vamos usar o parâmetro ID aqui e dar a essa tag P uma ID de saudação E é com isso que vamos trabalhar quando criarmos nossos usuários. Também vamos dar essa entrada de FirstName Também daremos a isso um IV do primeiro nome, apenas para sabermos de qual entrada precisamos direcionar o valor Então, para que tudo funcione, vamos escrever uma função JavaScript que é chamada quando o botão de envio é pressionado. Então, vamos criar uma função ao clicar. Então, conceitos ao clicar, vamos chamá-los em Enviar. Enviar. Queremos, queremos basicamente obter a informação que está nessa primeira entrada, queremos obter o valor dessa entrada. Então, como fazer isso é direcionar a janela, que é o objeto maior que contém todas as informações na página Então, vamos mirar na janela. Como também falamos, poderíamos fazer isso usando o documento. Porque, como dissemos, o JavaScript funciona com o Document Object Model. Você pode usar janela ou documento e digitar window dot get. Na verdade, vamos usar o documento. Vamos fazer o documento, obtendo elemento por ID, que é um método disponível no documento. E vamos passar esse ID que demos à primeira entrada chamado primeiro nome. Vamos salvar isso. E vamos apenas registrar o resultado disso no console. E vamos ver, vamos retornar o que quer que seja, certo, então, ao enviar, vamos retornar isso e somos esses loops de console.log que serão apenas console dot log On Eu só quero ver o que acontece quando chamamos isso. A última coisa que realmente precisaremos fazer aqui é chamá-lo a partir do próprio arquivo HTML , porque precisamos conectar os dois. Então, como temos nosso botão de tipo de entrada aqui, daremos a ele um atributo onclick E o que esse atributo é apenas uma conexão com nossas funções de JavaScript. Então, a função definitiva que vamos usar, na verdade, vamos simplesmente alterá-la para “Enviar”. Tudo bem, então vamos realmente devolver o documento, sair. Não conversamos sobre os valores. Vamos fazer o ponto do documento, obter elemento por valor do ponto de ID porque queremos o valor real disso. Tudo bem, vamos realmente fazer algo aqui. Digamos o primeiro nome de Const. E vamos definir isso com esse valor. Então pegue isso e eu coloco isso lá. E agora FirstName é o valor. Vamos retornar FirstName, mas antes de retorná-lo, na verdade também vamos acessá-lo em console.log Primeiro. Tudo bem, e vamos guardar isso. Então, quando digitamos John e clicamos em Enviar, lá vamos. Está funcionando. Estamos pegando John, quando clicamos no botão Enviar. Perfeito, é exatamente o que pretendíamos. Agora que temos essa variável com a qual podemos trabalhar, o que precisamos fazer agora é usá-la, certo? Então, podemos salvar isso em uma variável específica? É claro que podemos, como falamos antes, salvar o resultado de uma função em uma variável. Tudo bem, então nós, Como são as variáveis de primeiro nome aqui? O que mais queremos fazer? Queremos devolver esse nome específico em uma espécie de saudação ao nosso usuário, certo? Então, o que vamos fazer aqui é realmente considerar o valor do primeiro nome, Serena Pegue os resultados disso e nós realmente os colocaremos em uma função de saudação Então, vamos criar uma saudação como uma função. E vamos dizer que a função de saudação deve retornar Ou você sabe qual será a saudação. Uma função de efeito colateral. O que ele vai fazer é direcionar o documento, obter um elemento diferente por ID. Lembre-se de que demos uma identificação à etiqueta P. Eu posso trazê-lo aqui na lateral para que você possa vê-los. Então, demos a essa etiqueta P um ID de saudações. Então, vamos obter elemento por ID do ID de saudação. Depois, há essa outra propriedade chamada innerHTML Então você segmentou um elemento, agora você quer colocar algo dentro de seu HTML interno. Portanto, queremos então direcionar o HTML interno do ponto. E queremos essencialmente colocar o nome do usuário nisso, nessa frase. Então, vamos dizer, se nossa saudação vai ser bem simples Então, vamos dizer oi, oi. E depois mais o nome de qualquer pessoa. Além disso, usaremos um parâmetro para essa função chamado usuário. Em seguida, passaremos isso para a pequena função que temos aqui. Então, quando a saudação é chamada, ela pega o, vai até o documento, pega o elemento com a ideia de saudação Então essa é a nossa etiqueta P aqui. Ele vai obter o HTML interno, que é esse pequeno espaço entre as tags P aqui. E vai inserir essa altura mais o nome do usuário. Bem simples. Então, vamos mover essa função que está acima da função de envio Porque outra coisa importante a saber sobre JavaScript é que, às vezes, as funções não podem ser acessadas até serem criadas. Então, se eu fosse, se eu chamasse saudação, se eu dissesse saudação, nessa função, eu poderia receber um erro dizendo que ela está sendo usada antes de ser criada Às vezes, isso causa erros, às vezes não, mas a melhor prática é colocá-los na ordem em que você os está usando. Então, vamos criar uma saudação. E então vamos pegar o valor do primeiro nome e vamos passar isso para saudações Vamos transformar o primeiro nome em saudação. E isso vai ser, essa será a nossa função realmente precisa fazer é adicioná-la. Portanto, precisamos, em vez de chamá-lo, precisamos adicioná-lo para usar HTML interno. E vamos usar mais e iguais para ter um igual a Então, se fizermos isso de novo, deve funcionar. Nós clicamos em Enviar. Lá vamos nós. Oi, John. Não está totalmente formatado, certo, mas vamos corrigir isso Perfeito. Então, vamos dar uma olhada no que fizemos aqui. Nós direcionamos o documento. Obtivemos o elemento pela saudação de ID, que é essa tag P. Nós direcionamos seu HTML interno e usamos isso mais um sinal de igual. Então, estamos adicionando algo a isso. E adicionamos oi mais o nome do usuário. Muito simples, certo? E então, para curtir uma saudação amigável que podemos fazer, essa é apenas uma maneira tirar proveito de todas as coisas que fizemos com nosso JavaScript até agora Uma pequena função super simples de fazer. Mas é um exemplo muito legal de como podemos realmente trabalhar com os valores que nos foram dados. Como você pode imaginar, podemos configurar isso para fazer coisas diferentes, como pegar o sobrenome e a idade deles. Poderíamos dizer: Ei, você tem idade para dirigir, pegue sua carteira de motorista ou algo parecido, ou qualquer resposta que ou qualquer resposta você queira obter com base na idade deles. Como você pode ver, isso pode ser usado de várias maneiras diferentes. 11. Formulário avançado: Vamos dar uma olhada agora em nosso projeto anterior, nosso projeto HTML e CSS, e ver como podemos adicionar um pouco de JavaScript a eles. Então, como você se lembra, temos nosso site aqui. E basicamente o que queremos fazer agora é provavelmente adicionar um pouco de interatividade interativa usando JavaScript, agora que somos profissionais de JavaScript. Então, se você se lembra, havia uma pequena imagem aqui chamada estados ativos. Então, na verdade, isso nos dá um monte de estados ativos diferentes que eles gostariam que adicionássemos à própria forma real. Como você pode ver, muito disso é basicamente dizer ao usuário que algo não pode estar vazio quando ele clica em Enviar Portanto, também há um pequeno validador de e-mail aqui. Então, vamos tentar implementar algumas dessas coisas. Vamos fazer assim. Se o usuário tentar enviar e o valor for nulo, queremos retornar alguma mensagem de erro Então, vamos ver como isso poderia parecer. Digamos que podemos segmentar, podemos usar a função HTML interna, a propriedade HTML interna sobre a qual acabamos de falar, bem como o ID, para realmente entender o que estamos tentando alcançar aqui. Então, vamos ver. Se você também notar o, as cores ao redor da borda são vermelhas aqui. Então, provavelmente queremos fazer algo com o CSS e o estilete Então, essas são algumas coisas que queremos fazer. Então, vamos adicionar um onsubmit onclick. Vamos adicionar uma função onsubmit. E está marrom agora porque na verdade ainda não o fizemos. Então, vamos fazer isso no Submit. Ótimo Função básica. E ao clicar, eu escrevi errado aqui também. Eles são reais ao clicar. Faça um onsubmit. Incrível. Tudo bem, então nesta função onsubmit, queremos basicamente direcionar todos os valores da entrada Portanto, há algumas maneiras diferentes de fazer isso. Poderíamos obtê-los, vamos pegá-los, vamos fazer isso um pouco mais manualmente por enquanto, vamos fazer ID FirstName Vamos fazer o id do LastName. E vamos fazer o ID da cor do e-mail. Provavelmente também quero fazer algo diferente com alguns deles. E então, na semana passada, sim, vamos fazer uma identificação de senha. Tudo bem? Portanto, temos nossas quatro entradas com IDs. Então, o que queremos fazer agora é obter todos esses elementos por ID. E podemos fazer isso dentro da função onsubmit ou fora dela. Então, se quiséssemos apenas criar essas variáveis aqui, poderíamos usar firstname Incrível. Então, agora temos como alvo todos esses elementos. Então, ao enviar, queremos dizer se, se o valor do ponto de entrada for igual, igual a não igual, for igual a nulo, então queremos pegar isso, que receberá se o valor do ponto de entrada for igual, igual a não igual, for igual a nulo, então queremos pegar isso, essa entrada e daremos a ela um nome de classe . Então, é chamado de lista de classes. Adicionar ponto adicionará, adicionará o, chamará isso de erro. Vamos fazer mais uma coisa aqui. Adicionaremos um estilo chamado erro. Erro. E isso mudará a borda para um pixel, um pixel. Vermelho sólido. Isso é o que faremos por enquanto. Então, se estiver vazio, ele adicionará essa borda vermelha. Vamos ver se isso funciona. Não é possível ler propriedades do valor de leitura nulo. Ok, então está nos dando um erro aqui porque não há valor para cada um deles. Tudo bem, então depois de algumas pesquisas, descobri qual era o O que realmente precisávamos fazer era mover todos esses elementos dentro da função porque, basicamente eles não existem, do lado de fora. Você não existe, não há nada que a função realmente agarre. Então, ao colocá-los dentro da função, paramos de tratar isso, acionando esse ar Então, o que basicamente queremos fazer é isso. Queremos pegar o elemento add, verifique se o valor é igual a essa string vazia Se for igual a essa string vazia, então queremos pegar esse elemento para entrar em sua lista de classes e, em seguida, adicionar um erro. Como você se lembra, adicionamos um erro clássico na parte inferior aqui, que fornecerá a borda, mudará a borda para um pixel, borda sólida em vez de pontilhada ou tracejada, e a tornará uma borda vermelha Então, em teoria, se tivermos feito isso corretamente, quando clicarmos no primeiro nome, nenhum valor vai somar isso Ele adicionará essa classe de erro e ficará vermelho. Então, vamos clicar nele e então temos, está funcionando corretamente. Está nos dizendo que, ei, há um erro aqui. Incrível. Então, o que agora queremos fazer é apostar em todos eles. Então, vamos adicionar rapidamente todas essas outras opções. Então, basicamente pegamos todas as entradas. Criamos uma matriz para que possamos repeti-la muito mais rapidamente. E então dissemos que para cada entrada, se o valor de entrada não for nada, queremos adicionar o erro de classes. Foi tudo o que fizemos para criar esse ar para nós. Tudo bem, aí está. Vimos como podemos usar o JavaScript para realmente interagir com este formulário em um nível muito básico Eu encorajo você a levar isso até o fim e adicionar pequenos pontos de exclamação e também adicionar pequenos textos de espaço reservado para ver até onde você pode realmente ir