O que é o JavaScript?

JavaScript é uma linguagem de programação usada por desenvolvedores para fazer páginas interativas da Internet. As funções de JavaScript podem melhorar a experiência do usuário durante a navegação em um site, como, por exemplo, desde a atualização do feed na página da mídia social até a exibição de animações e mapas interativos. Como uma linguagem de script do lado do cliente, ele é uma das tecnologias principais da World Wide Web. Por exemplo, ao navegar na Internet, é possível visualizar a qualquer momento um carrossel de imagens, um menu suspenso “clicar para visualizar” ou mesmo mudar dinamicamente as cores dos elementos de uma página da Web. Tudo isso graças ao JavaScript.

Qual a utilidade do JavaScript?

Anteriormente, as páginas da Web eram estáticas como páginas em um livro. Uma página estática exibia basicamente informações em um layout fixo e não fazia tudo que esperamos de um site moderno hoje em dia. O JavaScript surgiu como uma tecnologia do lado do navegador para tornar as aplicações Web mais dinâmicas. Ao usar JavaScript, os navegadores passaram a ser capazes de responder a interações do usuário e alterar o layout do conteúdo na página.

À medida que a linguagem amadureceu, desenvolvedores de JavaScript estabeleceram bibliotecas, frameworks e práticas de programação, além de começar a usá-la fora dos navegadores da Web. Hoje em dia, é possível usar JavaScript para desenvolvimento tanto do lado do cliente quanto do lado do servidor. Nas próximas subseções, apresentamos alguns casos de uso comuns:

Anteriormente, as páginas da Web eram estáticas como páginas em um livro. Uma página estática exibia basicamente informações em um layout fixo e não fazia tudo que esperamos de um site moderno hoje em dia. O JavaScript surgiu como uma tecnologia do lado do navegador para tornar as aplicações Web mais dinâmicas. Ao usar JavaScript, os navegadores passaram a ser capazes de responder a interações do usuário e alterar o layout do conteúdo na página.

À medida que a linguagem amadureceu, desenvolvedores de JavaScript estabeleceram bibliotecas, frameworks e práticas de programação, além de começar a usá-la fora dos navegadores da Web. Hoje em dia, é possível usar JavaScript para desenvolvimento tanto do lado do cliente quanto do lado do servidor. Nas próximas subseções, apresentamos alguns casos de uso comuns:

 

Como o JavaScript funciona?

Todas as linguagens de programação funcionam traduzindo sintaxe escrita de modo semelhante ao idioma inglês em código de máquina, que é executado pelo sistema operacional. O JavaScript é amplamente categorizado como uma linguagem de criação de scripts ou uma linguagem interpretada. O código em JavaScript é interpretado, ou seja, é traduzido diretamente no código de linguagem de máquina subjacente por um mecanismo de JavaScript. Em outras linguagens de programação, um compilador compila todo o código em linguagem de máquina durante uma etapa distinta. Portanto, todas as linguagens de criação de script são linguagens de programação, mas nem todas as linguagens de programação são linguagens de criação de script.

O mecanismo JavaScript

Um mecanismo JavaScript é um programa de computador que executa código em JavaScript. Os primeiros mecanismos JavaScript eram simples interpretadores, mas todos os mecanismos modernos usam compilação just-in-time ou em tempo de execução para melhorar a performance.

JavaScript do lado do cliente

O termo JavaScript do lado do cliente refere-se à maneira como o JavaScript funciona em seu navegador. Nesse caso, o mecanismo JavaScript está integrado ao código do navegador. Todos os principais navegadores acompanham os próprios mecanismos JavaScript integrados.

Os desenvolvedores de aplicações Web escrevem código em JavaScript com diferentes funções associadas a diversos eventos, como um clique no botão ou focalização do mouse. Essas funções promovem mudanças nos códigos em HTML e CSS.

Veja abaixo uma síntese do funcionamento do JavaScript do lado do cliente:

1.   O navegador carrega uma página da Web quando você a acessa.

2.   Durante o carregamento, o navegador converte a página e todos os seus elementos, como botões, rótulos e caixas de menu suspenso, em uma estrutura de dados chamada Modelo de Objeto de Documento (DOM).

3.   O mecanismo JavaScript do navegador converte o código JavaScript em código de bytes. Esse código é um intermediário entre a sintaxe em JavaScript e a máquina.

4.   Eventos diferentes, como o clique do mouse em um botão, acionam a execução do bloco de código associado em JavaScript. Em seguida, o mecanismo interpreta o código de bytes e faz alterações no DOM.

5.   O navegador exibe o novo DOM.

JavaScript do lado do servidor

O termo JavaScript do lado do servidor se refere ao uso da linguagem de codificação na lógica de back-end do servidor. Nesse caso, o mecanismo JavaScript está diretamente no servidor. Uma função de JavaScript do lado do servidor pode acessar o banco de dados, realizar diferentes operações lógicas e responder a diversos eventos acionados pelo sistema operacional do servidor. A principal vantagem da criação de script do lado do servidor é que você pode promover um alto nível de personalização na resposta do site com base em seus requisitos, seus direitos de acesso e nas solicitações de informação recebidas do site.

Arquitetura do lado do servidor vs. do lado do cliente

A palavra dinâmica descreve o JavaScript do lado do cliente e do servidor. O comportamento dinâmico é a capacidade de atualizar a exibição da página para gerar conteúdo novo conforme necessário. A diferença entre o JavaScript do lado do cliente e do lado do servidor está na forma como esses dois modos geram conteúdo novo. O código do lado do servidor gera novo conteúdo dinamicamente usando lógica de aplicativo e modificando os dados recebidos do banco de dados. Por outro lado, o JavaScript do lado do cliente gera novo conteúdo de maneira dinâmica diretamente no navegador usando lógica da interface com o usuário e modificando o conteúdo da página que já está no cliente. O significado tem uma diferença sutil nos dois contextos, mas está relacionado. Ambas as abordagens funcionam em sinergia para melhorar a experiência do usuário.

Além da implementação em recursos dinâmicos, outra diferença entre os dois usos do JavaScript está nos recursos aos quais o código tem acesso. Do lado do cliente, o navegador controla o ambiente de tempo de execução do JavaScript. O código só pode acessar os recursos que o navegador permite. Por exemplo, ele não pode gravar conteúdo em seu disco rígido a menos que você clique em um botão de download. Por outro lado, as funções do lado do servidor podem acessar todos os recursos da máquina do servidor conforme a necessidade.

O que são as bibliotecas de JavaScript?

As bibliotecas de JavaScript são coleções de trechos prontos de código que os desenvolvedores Web podem reutilizar para executar funções padrão do JavaScript. O código de biblioteca de JavaScript é conectado ao restante do código do projeto de acordo com a necessidade. Fazendo uma analogia, se você pensar no código da aplicação em JavaScript como uma casa, as bibliotecas de JavaScript são móveis modulares que os desenvolvedores podem usar para aprimorar a funcionalidade da casa.

Veja a seguir alguns dos usos comuns das bibliotecas de JavaScript:

Visualização de dados

A visualização de dados é crucial para que usuários vejam estatísticas, p. ex., no painel de administração ou sobre métricas de painel e desempenho.

Bibliotecas como Chart.js, ApexCharts e Algolia Places têm funções integradas que você pode usar para criar aplicativos Web que exibem dados em gráficos e mapas.

Manipulação de DOM

É possível usar bibliotecas como jQuery e Umbrella JS para facilitar o desenvolvimento Web, pois elas oferecem código de funções padrão de sites, como animações de menu, galerias de imagem, botões, caixas de luz e mais.

Formulários

Qualquer desenvolvimento Web usa formulários para que visitantes do site entrem em contato com alguém, façam o pedido de produtos ou o cadastro para eventos. Algumas bibliotecas de JavaScript, como wForms, LiveValidation, Validanguage e qForms, simplificam as funções de criação de formulários, inclusive validação, layout, condições e transformação de formulários.

Funções de matemática e texto

Muitas aplicações Web precisam resolver equações matemáticas e processar datas, horários e texto. Em vez de enviar todas as solicitações para o servidor, é mais eficiente processar uma parte do lado do cliente. Desenvolvedores Web fazem isso usando bibliotecas de JavaScript como Date.js, Sylvester e JavaScript URL Library

O que são os frameworks de JavaScript?

Assim como as bibliotecas de JavaScript, os frameworks de JavaScript são coleções de trechos prontos de código que realizam diferentes funções e podem ser reutilizados. No entanto, enquanto as bibliotecas de JavaScript são uma ferramenta especializada para uso sob demanda, os frameworks são um conjunto completo de ferramentas que ajuda a moldar e organizar qualquer aplicativo Web. Fazendo uma analogia, se você pensar no código do aplicativo JavaScript como uma casa, o framework de JavaScript é a planta baixa usada para construir a casa.

Veja a seguir alguns exemplos de caso de uso para frameworks de JavaScript:

Desenvolvimento de aplicativos móveis e Web

O AngularJS é um framework que simplifica o desenvolvimento e o teste de aplicações Web, como aplicações de comércio eletrônico, aplicações em tempo real e aplicações de vídeo. O React Native é outro framework compatível com o desenvolvimento de aplicações móveis renderizadas nativamente para iOS e Android.

Desenvolvimento Web responsivo

Um site responsivo proporciona uma experiência de usuário consistente em qualquer dispositivo. Por exemplo, telas de celulares e tablets são menores do que as telas de desktops e notebooks. É desejável que o site seja exibido e apresente dados com exatidão mesmo em telas menores sem cortar as extremidades do site, por exemplo. Usando frameworks como Bootstrap e Ember.js, os desenvolvedores podem desfrutar de benefícios do design responsivo e personalizar facilmente o aspecto e a usabilidade de um site em diferentes plataformas.

Desenvolvimento de aplicativos do lado do servidor

O Node.js é um framework de JavaScript de código aberto e do lado do servidor que executa código em JavaScript fora de um navegador. Os desenvolvedores usam esse framework para criar aplicativos escaláveis, rápidos e confiáveis baseados em rede e do lado do servidor. Ele é capaz de processar solicitações e fluxos de dados HTTP, dar suporte a sistemas de arquivos e gerenciar vários processos de back-end ao mesmo tempo.

Qual o significado de HTML e CSS?

Linguagem de marcação de hipertexto (HTML) e folhas de estilo em cascata (CSS) são duas outras linguagens de programação que os desenvolvedores usam para o desenvolvimento de front-end. A linguagem HTML é o elemento básico da maioria das páginas da Web. Todos os parágrafos, seções, imagens, cabeçalhos e textos são escritos usando HTML. O conteúdo é exibido no site na ordem do código em HTML.

Já a linguagem CSS trata de regras de estilo, sendo usada para aplicar diferentes estilos ao conteúdo em HTML. É possível usá-la no design de elementos do site, como cores da tela de fundo, fontes, colunas e bordas.

HTML vs. CSS vs. JavaScript

As três linguagens funcionam em conjunto para criar uma experiência de usuário positiva em qualquer site. Embora HTML e CSS sejam capazes de manipular principalmente conteúdo estático, também podem promover integração com o código em JavaScript do lado do cliente para atualizar o conteúdo dinamicamente.

Por exemplo, o bloco de código de script em uma página HTML pode conter JavaScript. Em seguida, o navegador pode processar o código em HTML e o código interno em JavaScript quando a página em HTML for carregada.
 

Quais são os benefícios do JavaScript?

Facilidade de aprendizado e uso

A sintaxe do JavaScript foi inspirada na linguagem de programação Java, sendo fácil de aprender e codificar. Os desenvolvedores usam JavaScript para criar scripts do lado do cliente em praticamente todos os sites e aplicativos móveis. Durante a última década, o Node.js também ganhou popularidade para codificação de back-end. Muitas plataformas importantes de transmissão e de vídeo foram codificadas em Node.js.

Autonomia em relação a plataformas

Ao contrário de outras linguagens de programação, é possível inserir JavaScript em qualquer página da Web e usá-lo com vários outros frameworks e linguagens de desenvolvimento Web. Após escrever o código, é possível executá-lo em qualquer máquina. Portanto, o JavaScript faz com que o desenvolvimento de aplicações seja independente de plataformas.

Redução da carga do servidor

É possível usar JavaScript para reduzir a carga do servidor e o congestionamento da rede, pois a linguagem é capaz de executar operações lógicas e fazer boa parte do trabalho do servidor diretamente no cliente. Por exemplo, pense no processo de preenchimento de um formulário de cadastro. O JavaScript verifica rapidamente se você inseriu um número com 10 dígitos no campo de telefone celular. Se essa solicitação fosse enviada ao servidor, sua página seria recarregada a cada erro, tornando o processo de cadastro lento e enfadonho.

Melhora da interface do usuário

O JavaScript cria sites elegantes que facilitam encontrar e processar informações complexas. Os desenvolvedores usam o JavaScript para ampliar a funcionalidade e a legibilidade, além de aumentar a eficiência das interações para os usuários do site.

Compatibilidade com simultaneidade

O JavaScript é capaz de executar paralelamente vários conjuntos de instruções diferentes. No back-end, o Node.js pode gerenciar e processar respostas de servidor bastante aumentadas verticalmente sem consumir a mesma largura de banda.

Quais são as limitações do JavaScript?

As linguagens de programação usam variáveis como espaços reservados para os valores efetivos de dados. Por exemplo, em um bloco de código, o desenvolvedor pode escrever x = 5 e y = x + 1. Quando o código for executado, o computador vai alterar automaticamente x e y para 5 e 6, respectivamente, a fim de realizar funções com base neles. É possível ter dados de vários tipos, como strings de texto, números ou uma data. É por isso que a maioria das linguagens de programação permitem que você defina o tipo de variável. Após a definição do tipo de variável, ele não é alterado. Não é possível armazenar números em variáveis de cadeia de caracteres.

Por exemplo, se você informar ao programa que x e y são números, e posteriormente realizar a operação x + y, o computador saberá que deve esperar por dois números e somá-los. Por outro lado, se você definir x e y como cadeias de caracteres, o operador “+” unirá as duas cadeias de caracteres e criará uma palavra maior.

Linguagem de tipagem fraca

O JavaScript é uma linguagem com tipagem fraca, ou seja, não permite que o programador defina o tipo de variável. Uma variável pode armazenar qualquer tipo de dados no tempo de execução e as operações presumem o tipo de variável. O resultado também pode ser lançados para outro tipo de dados, p. ex., uma operação pode retornar o resultado como a string “5” em vez do número 5. Isso pode resultar em erros acidentais na criação do código e em bugs no código devido a erros de tipo.

O que é o TypeScript?

O TypeScript é uma linguagem de programação que melhora o JavaScript ao adicionar tipos à sintaxe. O TypeScript acrescenta sintaxe adicional ao JavaScript, de modo que as ferramentas de edição de código detectem precocemente erros no código. Ao mesmo tempo, o código em TypeScript é convertido para JavaScript e fornece todos os mesmos benefícios da linguagem. Também funciona em aplicações e com frameworks e bibliotecas de JavaScript.

O que é o AWS SDK para JavaScript?

O AWS SDK para JavaScript é um conjunto de bibliotecas de JavaScript de código aberto e uso gratuito com integração aos produtos da AWS. Elas são compatíveis com o desenvolvimento de APIs, abstrações de nível superior e três tipos de aplicações:

  • JavaScript para navegador
  • Node.js para servidor
  • React Native para desenvolvimento móvel

AWS SDK para JavaScript é totalmente escrito em TypeScript e então compilado em JavaScript. Por isso, você recebe todos os benefícios do TypeScript sem preocupações com compatibilidade com versões anteriores.

Você pode começar a usar o AWS SDK para Java lendo os exemplos de código e o guia de migração ou instalando-o diretamente do GitHub.

O que é o AWS Amplify para JavaScript?

O AWS Amplify é um conjunto de ferramentas e recursos de propósito específico que permite a desenvolvedores front-end móveis e Web criar aplicações full stack na AWS com rapidez e facilidade. Com código aberto, as bibliotecas de cliente do Amplify fornecem interfaces centradas em caso de uso e fáceis de usar em diferentes categorias de operações viabilizadas pela nuvem. As bibliotecas de JavaScript do Amplify são compatíveis com diferentes frameworks para dispositivos móveis e Web, como React, React Native, Angular, Ionic e Vue.js. Você pode começar a usar concluindo o Getting started guide (Guia de introdução) para JavaScript do Amplify.

Próximos passos para JavaScript na AWS