JavaScript - Guia
JavaScript - Guia
PROGRAMAÇÃO _ FRONT END _ DATA SCIENCE _ INTELIGÊNCIA ARTIFICIAL _ DEVOPS _ UX & DESIGN _ MOBILE _ INOVAÇÃO & GESTÃO _
"
Conclusão
História do JavaScript
Agora que sabemos o que é o JavaScript, que tal entendermos mais sobre a sua
história?
Após uma parceria com a Sun Microsystems, empresa responsável pela criação
da linguagem Java, o nome LiveScript foi alterado para JavaScript. Essa foi uma
jogada de marketing feita com o objetivo de chamar atenção para o JavaScript
através da fama que o Java já tinha conquistado naquele momento.
Atualizações frequentes;
Correções de bugs;
Segurança;
De forma resumida, as bibliotecas são pedaços de código pronto que vão trazer
alguma funcionalidade ou resolver algum problema.
Além disso, diversas aplicações hoje em dia possuem pelo menos uma parte
feita em JavaScript, por exemplo:
Paypal;
LinkedIn;
Netflix;
Uber; e
GoDaddy.
Esconder botões;
Realizar logins;
Consumir dados;
Isso acontece, pois essa é uma linguagem que atua no lado do cliente (ou client-
side), portanto consegue executar suas tarefas diretamente na máquina do
usuário sem precisar acessar algum servidor. Sendo assim, basta ter um
navegador e já é possível desenvolver código com JavaScript.
Fora isso, essa linguagem se mostrou tão relevante que, em 2009, foi criado o
Node.JS, um ambiente de execução JavaScript no qual é possível que essa
linguagem também seja executada no server-side (lado do servidor), ou seja, fora
do navegador. Isso abriu um leque enorme de utilidades para o JavaScript.
Adiante, vamos falar um pouco mais sobre como o Node.js torna isso possível.
Variáveis no JavaScript
var;
let; e
const.
No exemplo acima, estamos usando uma variável do tipo var chamada cor ,
antes mesmo de declararmos o seu valor. Levando em conta a particularidade do
hoisting, quando utilizamos o tipo var , não há erros de compilação, mas a saída
da nossa impressão é undefined (em português significa “indefinido”, ou seja, a
variável não foi inicializada).
Esse tipo de situação com hoisting, pode não ser o ideal quando queremos tornar
nosso código mais limpo e coeso.
Uma solução para evitar possíveis confusões é utilizar variáveis do tipo let , e o
mesmo algoritmo terá um resultado diferente. Observe o seguinte exemplo:
Nesse caso, ao tentar usar a variável cor antes de declararmos o seu valor,
recebemos um erro de referência nos informando que não podemos acessar a
variável antes que ela seja declarada.
Beleza! Então com let nós garantimos que erros causados pelo hoisting não
existam, contudo, ainda assim pode ocorrer de declararmos uma variável do tipo
let e usarmos antes que ela seja inicializada (antes de darmos um valor a ela), e
seu resultado será undefined.
Para esses casos, quando temos uma variável que deve ser inicializada na sua
declaração e que sabemos que seu valor não irá mudar, usamos o const. Veja
abaixo um exemplo:
Agora que já conhecemos os tipos var , let e const , cabe a você, como dev,
usá-las com sabedoria! E se quiser uma leitura mais completa sobre o assunto,
recomendamos o artigo Entenda a diferença entre var, let e const no JavaScript.
Para entender melhor como funciona essa tipagem dinâmica, indicamos o artigo
Tipagem dinâmica com JavaScript.
Por um lado isso é positivo, pois facilita a vida da pessoa desenvolvedora, mas
por outro, essa tipagem dinâmica costuma ser a fonte de alguns bugs bem
estranhos e isso divide opiniões em relação à tipagem dinâmica.
Para se ter uma ideia de como é esse sistema de código binário, recomendo a
leitura do artigo Entenda o sistema de Código Binário.
global _start
section .data
msg: db "Ola, Mundo!", 0xa
len: equ $-msg
section .text
_start:
mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx, len
int 0x80
mov al, 1
int 0x80
Este código tem a simples função de mostrar na tela a mensagem “Olá, mundo”,
essa linguagem é de baixo nível e talvez não seja tão simples de se entender, e
além disso, possui um código extenso para realizar uma operação simples, pois
tem muitos termos complexos para nós.
console.log(‘Olá, mundo!’)
Percebeu a diferença?
Essa forma de programar se torna muito mais compreensível para nós humanos,
por se aproximar mais de uma das linguagens que usamos para nos comunicar (o
inglês). Portanto, podemos considerar JavaScript uma linguagem de programação
de alto nível.
Vantagens
Quando trabalhamos com programação, existem diversas áreas nas quais
podemos atuar, tais como:
Assim temos uma padronização, visto que com tudo sendo escrito em JavaScript,
a uniformidade é maior e o trabalho é mais compreensível para quem está
envolvido no projeto, seja uma pessoa dev front-end, back-end ou full stack, ou
demais profissionais.
Linguagem multiparadigma
Outra característica comum de ouvirmos por aí sobre o JavaScript é que essa é
uma linguagem multiparadigma. Para entendermos o que isso significa, primeiro é
importante saber o que é um paradigma de programação.
Imagine que você precisa esquentar o seu jantar, então passa um tempinho
pensando se vale a pena colocar no forno, aquecer em uma frigideira ou
microondas mas acaba optando por levar ao microondas.
Perceba que você tinha várias maneiras de chegar a um mesmo resultado, que
era ter o seu jantar aquecido, e optou por aquela que era mais conveniente para a
situação. Logo, o “paradigma” escolhido foi o micro-ondas.
Como qualquer tarefa que temos no dia a dia e podemos realizar de diferentes
formas para chegar ao resultado desejado, na programação também é assim. Os
paradigmas de programação são um “estilo” de programar, uma maneira de
construir o código que será escolhida de acordo com o que se adequa melhor
para resolver determinado problema.
Curva de aprendizado
Uma vantagem do JavaScript é sua curva de aprendizado curta. A linguagem já
tem o uso facilitado por não precisar de uma preparação de ambiente complexa,
além de ter uma sintaxe simples que possibilita visualizar resultados
rapidamente, sem que você precise passar meses estudando para conseguir
construir códigos úteis e que funcionem.
Sendo assim, o JavaScript é uma das linguagens com um dos aprendizados mais
facilitados, e isso também é presente na maioria das ferramentas que podem ser
integradas a esse ecossistema, fazendo com que essa linguagem seja a
queridinha de muitas pessoas desenvolvedoras iniciantes.
Vulnerabilidades
A Internet é um lugar perigoso e o JavaScript não escapa à regra. É comum
acontecer de aplicações Web ficarem indisponíveis devido a ataques maliciosos,
e até mesmo de acontecer o vazamento de dados dos usuários dessas
aplicações pelo mesmo motivo.
Injeção de SQL;
Cross-Site Request Forgery CSRF .
O mais importante é que você deve entender que uma aplicação Web não pode
confiar em nenhum dado do navegador, ou seja, em nenhum dado que venha de
um usuário externo. Nesse caso, todos os dados devem ser validados antes de
serem exibidos ou usados na aplicação, evitando consultas e chamadas
maliciosas dos arquivos.
Aqui deve ficar muito claro que Java e JavaScript são escritas, construídas e
executadas de forma diferente. Há também uma grande diferença no que cada
linguagem pode fazer.
Python vs JavaScript
Python e JavaScript são linguagens muito poderosas com diferentes aplicações
no mundo real.
Passo 01
Preparado o ambiente, vamos lá! O JavaScript funciona em conjunto com HTML
(que significa “HiperText Markup Language” ou linguagem de marcação de texto,
utilizada nos navegadores), dessa maneira, precisamos criar um arquivo com
extensão .html ( index.html , por exemplo), e dentro desse arquivo precisamos
usar o corpo de uma página HTML, da seguinte maneira:
<!DOCTYPE html>
<html>
</html>
Passo 02
Agora, perceba que o HTML é uma linguagem de marcação, ou seja, utiliza
marcações (etiquetas ou tags) para informar ao navegador o que é cada coisa
dentro dele. E para o código JavaScript, também temos uma tag. Vamos usar a
tag script , dentro da tag html , para guardar nosso código, veja abaixo:
<!DOCTYPE html>
<html>
<script>
</script>
</html>
Passo 03
E, claro, agora precisamos imprimir o nosso “Olá, mundo!” e, para isso, usaremos
o console.log() , que vai imprimir na aba de console do navegador a mensagem
que quisermos. O código final fica da seguinte maneira:
<!DOCTYPE html>
<html>
<script>
console.log("Olá, mundo!")
</script>
</html>
Passo 04
Depois de concluir e salvar seu código, abra a pasta do arquivo e abra o arquivo
.html no seu navegador, espere abrir e clique com o botão direito em qualquer
área da tela, escolha a opção inspecionar. Deve abrir a seguinte aba:
Na opção "Console", você pode observar a frase “Olá, mundo!” impressa, é dessa
maneira que visualizamos as impressões que vamos utilizar em nosso código
JavaScript.
Passo 01
Em JavaScript, assim como em outras linguagens de programação, nós
trabalhamos com funções, que nada mais são do que um trecho de código que
pode ser invocado (chamado) em outro momento no seu algoritmo. Para criar uma
função em JavaScript, é bastante simples, basta escrever da seguinte forma:
function nomeDaFuncao(){
//o que a função faz (corpo da função)
}
Passo 02
Na prática, imagine que queremos criar uma função para somar 6 + 4 , podemos
dizer que o nome da função é soma e no corpo da função, ou seja, aquilo que ela
vai fazer, podemos usar um console.log(6 + 4) para escrever o resultado da
soma no console. Vamos ver abaixo como o código ficaria:
<!DOCTYPE html>
<html>
<script>
function soma() {
console.log(4 + 6)
}
</script>
</html>
Passo 03
Mas note que se você testar apenas isso, nada vai aparecer no console do seu
navegador. E por quê? Como disse anteriormente, as funções precisam ser
invocadas, chamadas em algum momento do seu código. Portanto, você deve
chamar a função pelo seu nome soma() , veja abaixo:
<!DOCTYPE html>
<html>
<script>
function soma() {
console.log(4 + 6)
}
soma()
</script>
</html>
Passo 04
Outro ponto interessante é que funções também podem receber parâmetros,
argumentos (dados), que são passados para a função no momento da sua
chamada. Então, agora imagine que queremos uma função que some qualquer
número, podemos usar um argumento x e outro y que serão somados dentro do
console.log , da seguinte maneira:
<!DOCTYPE html>
<html>
<script>
function soma(x, y) {
console.log(x + y)
}
</script>
</html>
<!DOCTYPE html>
<html>
<script>
function soma(x, y) {
console.log(x + y)
}
soma(4, 6)
soma(3, 5)
</script>
</html>
Passo 05
Repare que as funções que aprendemos acima podem ser chamadas dentro da
própria tag script dentro do HTML, ou dentro de um arquivo JavaScript linkado ao
HTML, como aprendemos anteriormente. Porém, indo um pouco além, que tal
chamarmos a função quando apertamos um botão na página HTML? Para isso,
podemos usar uma tag HTML chamada button, e dentro dela usarmos uma
propriedade chamada onclick() (que significa “ao clicar”) que recebe uma função,
e será invocada quando clicarmos no botão. Veja abaixo como ficaria:
<!DOCTYPE html>
<html>
<button onclick="soma(4, 6)">Me aperte</button>
<script>
function soma(x, y) {
console.log(x + y)
}
</script>
</html>
Passo 01
Utilizando o mesmo algoritmo onde imprimimos “Olá, mundo!” no nosso console,
podemos colocá-lo em um novo arquivo, de extensão .js , vamos chamá-lo de
script.js . Você terá então dois arquivos no seu projeto, veja a imagem abaixo:
Passo 02
Dentro do arquivo script.js teremos o seguinte conteúdo:
console.log(“Olá, mundo!”)
Passo 03
E para referenciar o nosso novo arquivo JavaScript dentro do código HTML,
podemos usar o atributo src (fonte ou source), dentro da tag script , para
informar o caminho para o nosso código JavaScript. Veja abaixo:
<!DOCTYPE html>
<html>
<script src="script.js"></script>
</html>
Caso tenha interesse em entender mais sobre essa relação entre o JavaScript e o
HTML, e aplicar na prática esses conceitos, recomendamos o curso Javascript e
HTML desenvolva um jogo e pratique lógica de programação.
04 Array JavaScript
Quando precisamos representar uma lista de elementos podemos usar o
chamado Array, que nos permite além de guardar os elementos, acessá-los e
realizar diversas operações com eles. Vamos ver como podemos criar um Array
em JavaScript:
O Array acima possui quatro elementos, representando uma lista de cores. Como
exemplo, vamos ver as operações de incluir um novo elemento, retirar o elemento
e ver o tamanho do Array:
cores.push('verde')
console.log(cores) //saída: ['amarelo', 'vermelho', 'azul', 'preto',
cores.pop()
console.log(cores) //saída: ['amarelo', 'vermelho', 'azul', 'preto']
console.log(cores.length) //saída: 4
let pessoa = {}
Repare que nosso objeto ainda não possui nada, é um objeto vazio, ou sem
atributos. Podemos então dar características para o objeto pessoa , como um
nome, idade e seus hobbies, por exemplo. Criaremos então esses atributos, da
seguinte maneira:
let pessoa = {
nome: "Maria",
idade: 22,
hobbies: ["ler", "programar"]
}
Agora, no nosso objeto pessoa , temos um nome, uma idade e uma lista de
hobbies. Bem legal, não é?
O que é o DOM?
Quando falamos de páginas Web e JavaScript, não podemos deixar de falar do
DOM, que significa Document Object Model. Trata-se da modelagem de todo o
HTML, ou seja, ele é gerado pelo navegador para representar a sua página Web
inteira.
Frameworks e Bibliotecas
JavaScript
Quando você é uma pessoa desenvolvedora, não precisa necessariamente
começar um projeto do zero absoluto, para isso, nós temos os Frameworks, que
são basicamente ferramentas, trechos de código e componentes por trás de
alguma linguagem de programação que vão ajudar no processo de
desenvolvimento do projeto.
Outro recurso que podemos utilizar no dia a dia são as bibliotecas, também
chamadas de libs. As bibliotecas são códigos prontos, funcionalidades já criadas
e recursos que podem ser reaproveitados em qualquer trecho do código. A ideia é
compartilhar códigos de problemas que já foram solucionados.
Pode surgir a dúvida sobre quais ferramentas (bibliotecas e frameworks) são mais
utilizadas hoje e qual tipo de aplicação elas ajudam a desenvolver. Segundo uma
pesquisa do Stack Overflow para o segundo trimestre de 2022, essas seriam as
ferramentas mais utilizadas no quesito desenvolvimento:
Angular
O Angular é um framework JavaScript front-end de código aberto, criado pela
Google e utilizado para desenvolvimento de aplicações Web. Ele possui um
conjunto de templates, componentes, módulos e ferramentas que acabam
acelerando o processo de desenvolvimento de uma aplicação.
De forma resumida, a SPA não irá recarregar a página inteira ou mudar de página,
apenas o conteúdo da página vai ser atualizado. Um exemplo de uma SPA é o
Gmail do Google, tudo acontece na mesma página e apenas o conteúdo principal
é alterado.
Node.js
O Node.js é um ambiente de execução JavaScript, ou seja, é uma plataforma que
podemos criar e executar o código sem a necessidade de depender de um
browser, executamos o JavaScript fora do ambiente do navegador Web.
Outras características que tornam o Node.js uma boa escolha seria o fato de ser
multiplataforma, multiparadigma, ter código aberto (open source) e possuir uma
comunidade muito grande e colaborativa.
Além disso, se quiser aprofundar ainda mais o seu conhecimento sobre Node.js,
recomendamos o artigo Node.JS definição, características, vantagens e usos
possíveis e o curso Node.js: criando sua primeira biblioteca.
Além disso, é utilizado por grandes empresas como Twitter, Airbnb e Facebook.
Se quiser se aventurar nesse mundo do React, recomendamos o curso React:
desenvolvendo com JavaScript.
O React também pode ser utilizado junto com outra ferramenta para construir
aplicativos móveis, o React Native.
Algumas características marcantes do React Native que o tornam uma boa opção
para desenvolvimento mobile são:
O desenvolvimento multiplataforma;
Uso de recursos nativos;
A modularização com o uso de componentes.
jQuery
O jQuery é uma biblioteca JavaScript criada em 2006 e ainda bastante utilizada
no desenvolvimento Web por facilitar a interação e dinamicidade das páginas
HTML. De forma mais direta, o jQuery torna a vida da pessoa que desenvolve em
JavaScript mais simples, fazendo com que ela escreva uma instrução de forma
bem mais sucinta. Além do mais, o jQuery também é código aberto então a
comunidade de devs está livre para melhorá-lo e incrementar mais
funcionalidades a ele. Se interessou? Se sim, recomendamos a leitura do artigo
jQuery: DOM, AJAX e Máscaras e o Curso de jQuery: domine a biblioteca mais
popular do mercado parte 1 para se aprofundar mais no assunto!
Um dos aspectos que faz o JavaScript ser tão popular para o mercado de
trabalho é justamente a sua comunidade dedicada a implementar a linguagem
em diversas áreas do desenvolvimento. Com isso, vamos entender melhor cada
uma dessas áreas.
Carreira back-end
O back-end de um projeto em JavaScript, assim como em qualquer outra
linguagem, é aquilo que acontece por trás da aplicação e que o usuário não vê,
como, por exemplo:
A tecnologia mais utilizada no back-end que tem o JavaScript rodando por trás
dos panos é o Node.js, se quiser mergulhar nesse mundo, recomendamos este
episódio do Hipsters.Talks que nos conta um pouco sobre o JavaScript no back-
end e também outro vídeo do Hipsters.Tech para nos contar sobre carreira.
Carreira front-end
Neste ramo do desenvolvimento Web, nós lidamos com a implementação do
visual da página, onde utilizamos HTML, CSS e a nossa amada JavaScript para
preencher a página com conteúdo, estilizá-la e colocar interação usando essas
três ferramentas em conjunto.
Carreira mobile
E por fora das páginas da Web, temos o desenvolvimento de aplicações móveis,
que são os aplicativos que você usa aí no seu celular, seja ele Android ou iOS, e
felizmente o JavaScript também presta suporte para essa área.
Aqui nós utilizamos o React Native, que é uma vertente do React para o
desenvolvimento de aplicativos. Este é um mercado vasto, pois hoje em dia nós
conseguimos fazer tudo pelo celular, seja acessar um App de um banco,
comprar passagens, pedir comida e até mesmo conversar com outras pessoas
por videochamadas.
Front-end
Empresa Framework / Biblioteca
Facebook React
Google Angular
Airbnb React
Dropbox React
Back-end
Empresa Framework / Biblioteca
LinkedIn Node.js
eBay Node.js
PayPal Node.js
Netflix Node.js
Mobile
Empresa Framework / Biblioteca
Conclusão
Neste artigo conhecemos a linguagem JavaScript, sua história, algumas
vantagens e características. Além de conhecer sua principal funcionalidade nos
navegadores, vimos seu uso em frameworks e bibliotecas, e como são utilizadas
no mercado de trabalho.
Parabéns por ter chegado até aqui, agora é hora de mergulhar nesse
conhecimento!
Agradecimentos especiais
André Louis, Jhoisnáyra Vitória e Matheus Perez pela parceria durante a escrita
deste artigo.
João Vitor é monitor na escola Front-end e bacharel em Sistemas de Informação. Seu foco principal é aprendar mais Front-end para ensinar cada vez melhor.
Apaixonado por tecnologia, jogos, café e programação, passa seu tempo livre viajando e brincando com sua cachorrinha Cacau.
Graduanda em Sistemas de Informação e Técnica em Desenvolvimento de Sistemas pela ETEC, atua como Scuba, na área de Front-end. Apaixonada por
tecnologia, está sempre buscando aprender coisas novas. Seus hobbies favoritos são ler, programar, estudar novos idiomas e assistir séries de comédia.
Leia também:
Formatando e Arredondando números no JavaScript: 2 casas decimais e outros casos possíveis
Async/await no JavaScript: o que é e quando usar a programação assíncrona?
JavaScript: convertendo String para número
Criando uma máscara de Telefone com Javascript
Javascript ou Typescript?
HTML, CSS e Javascript, quais as diferenças?
Como utilizar operadores de comparação em Javascript
Como funciona o import e export do JavaScript?
Entenda a diferença entre var, let e const no JavaScript
Strings com JavaScript: o que são e como manipulá-las
Quer mergulhar em
tecnologia e aprendizagem?
Documentos Institucionais
Status
Parceiros
CURSOS
Cursos de Programação Lógica | Python | PHP | Java | .NET | Node JS | C | Computação | Jogos | IoT
Cursos de Data Science Ciência de dados | BI | SQL e Banco de Dados | Excel | Machine Learning | NoSQL | Estatística
Cursos de Mobile React Native | Flutter | iOS e Swift | Android, Kotlin | Jogos
Cursos de Inovação & Gestão Métodos Ágeis | Softskills | Liderança e Gestão | Startups | Vendas
PM3 Cursos de Produto Alura Para Empresas Hipsters ponto Jobs Layers ponto Tech
Alura LATAM