O Que É JavaScript - Aprendendo Desenvolvimento Web - MDN - Assinado
O Que É JavaScript - Aprendendo Desenvolvimento Web - MDN - Assinado
O que é JavaScript?
Sejam bem-vindos ao curso de JavaScript para iniciantes do MDN! Neste primeiro
artigo vamos fazer uma análise profunda da linguagem, respondendo questões
como "O que é JavaScript?", e "O que ele faz?", para você se sentir confortável
com a proposta da linguagem.
<p>Jogador 1: Chris</p>
Nós podemos adicionar um pouco de CSS na mistura, para deixar nosso
parágrafo um pouco mais atraente:
CSS Play
p {
font-family: "helvetica neue", helvetica, sans-serif;
letter-spacing: 1px;
text-transform: uppercase;
text-align: center;
border: 2px solid rgba(0, 0, 200, 0.6);
background: rgba(0, 0, 200, 0.3);
color: rgba(0, 0, 200, 0.6);
box-shadow: 1px 1px 2px rgba(0, 0, 200, 0.4);
border-radius: 10px;
padding: 3px 10px;
display: inline-block;
cursor: pointer;
}
para.addEventListener("click", atualizarNome);
function atualizarNome() {
var nome = prompt("Insira um novo nome");
para.textContent = "Jogador 1: " + nome;
}
Play
JOGADOR 1: CHRIS
Experimente clicar no botão acima para ver o que acontece (note também que
você pode encontrar essa demonstração no GitHub — veja o código fonte ou
veja funcionar )!
JavaScript pode fazer muito mais do que isso — vamos explorar com mais
detalhes.
Então o que ele pode realmente fazer?
O núcleo da linguagem JavaScript consiste em alguns benefícios comuns da
programação que permite a você fazer coisas como:
Armazenar conteúdo útil em variáveis. No exemplo acima, a propósito, nós
pedimos que um novo nome seja inserido e armazenamos o nome em uma
variável chamada nome .
Operações com pedaços de texto (conhecidos como "strings" em
programação). No exemplo acima, nós pegamos a string "Jogador 1: " e
concatenamos (juntamos) com a variável nome para criar o texto completo
"Jogador 1: Chris".
Executar o código em resposta a determinados eventos que ocorrem em uma
página da Web. Nós usamos o click (inglês)no nosso exemplo acima para
que quando clicassem no botão, rodasse o código que atualiza o texto.
E muito mais!
O que é ainda mais empolgante é a funcionalidade construída no topo do núcleo
da linguagem JavaScript. As APIs (Application Programming Interfaces - Interface
de Programação de Aplicativos) proveem a você superpoderes extras para usar
no seu código JavaScript.
APIs são conjuntos prontos de blocos de construção de código que permitem que
um desenvolvedor implemente programas que seriam difíceis ou impossíveis de
implementar. Eles fazem o mesmo para a programação que os kits de móveis
prontos para a construção de casas - é muito mais fácil pegar os painéis prontos
e parafusá-los para formar uma estante de livros do que para elaborar o design,
sair e encontrar a madeira, cortar todos os painéis no tamanho e formato certos,
encontrar os parafusos de tamanho correto e depois montá-los para formar uma
estante de livros.
Elas geralmente se dividem em duas categorias.
Nota: Essas APIs são avançadas e nós não vamos falar sobre nenhuma
delas nesse módulo. Você pode achar muito mais sobre elas em nosso
módulo APIs web no lado cliente.
Tem muito mais coisas disponíveis! Contudo, não fique animado ainda. Você não
estará pronto para desenvolver o próximo Facebook, Google Maps ou Instagram
depois de estudar JavaScript por 24 horas — há um monte de coisas básicas para
estudar primeiro. E é por isso que você está aqui — vamos começar!
O que JavaScript está fazendo na sua página web?
Aqui nós vamos realmente começar a ver algum código, e enquanto fazemos isso
vamos explorar o que realmente acontece quando você roda algum código
JavaScript na sua página.
Vamos recaptular brevemente a história do que acontece quando você carrega
uma página web em um navegador (falamos sobre isso no nosso artigo Como o
CSS funciona). Quando você carrega uma página web no seu navegador, você
está executando seu código (o HTML, CSS e JavaScript) dentro de um ambiente
de execução (a guia do navegador). Isso é como uma fábrica que pega a matéria
prima (o código) e transforma em um produto (a página web).
para.addEventListener("click", atualizarNome);
function atualizarNome() {
let nome = prompt("Informe um novo nome:");
para.textContent = "Jogador 1: " + nome;
}
<script>
// O JavaScript fica aqui
</script>
function criarParagrafo() {
let para = document.createElement("p");
para.textContent = "Você clicou no botão!";
document.body.appendChild(para);
}
5. Salve seu arquivo e recarregue a página — agora você deveria ver que
quando você clique no botão, um novo parágrafo é gerado e colocado logo
abaixo.
Nota: Se seu exemplo não parece funcionar, leia cada passo novamente
e confira que você fez tudo certo. Você salvou sua cópia local do código
inicial como um arquivo .html? Você adicionou o elemento <script>
imediatamente antes da tag </body> ? Você digitou o código JavaScript
exatamente como ele está sendo mostrado? JavaScript é uma
linguagem case sensitive (isso significa que a linguagem vê
diferença entre letras maiúsculas e minúsculas) e muito confusa,
então você precisa digitar a sintaxe exatamente como foi mostrada,
senão não vai funcionar.
JavaScript externo
Isso funciona muito bem, mas e se nós quiséssemos colocar nosso JavaScript em
um arquivo externo? Vamos explorar isso agora.
1. Primeiro, crie um novo arquivo na mesma pasta que está o arquivo HTML de
exemplo. Chame-o de script.js — tenha certeza de que o nome do arquivo
tem a extensão .js , pois é assim que ele será reconhecido como JavaScript.
2. Agora substitua o elemento atual <script> pelo seguinte código:
HTML
function createParagraph() {
let para = document.createElement("p");
para.textContent = "Você clicou no botão!";
document.body.appendChild(para);
}
function criarParagrafo() {
let para = document.createElement("p");
para.textContent = "Você clicou o botao!";
document.body.appendChild(para);
}
HTML Play
Usando uma estrutura feita de puro JavaScript permite a você selecionar todos os
botões usando uma instrução. O código que nós usamos acima para servir a esse
propósito se parece com isso:
JS Play
Isso talvez parece ser mais do que o atributo onclick , mas isso vai funcionar para
todos os botões, não importa quantos tem na página, e quantos forem
adicionados ou removidos. O JavaScript não precisará ser mudado.
document.addEventListener("DOMContentLoaded", function() {
...
});
Neste caso, ambos script e HTML irão carregar de forma simultânea e o código irá
funcionar.
Uma solução à moda antiga para esse problema era colocar o elemento script
bem no final do body da página (antes da tag </body>) . Com isso, os scripts iriam
carregar logo após todo o conteúdo HTML. O problema com esse tipo de solução
é que o carregamento/renderização do script seria completamente bloqueado até
que todo o conteúdo HTML fosse analisado. Em sites de maior escala, com muitos
scripts, essa solução causaria um grande problema de performance e deixaria o
site lento.
async e defer
Atualmente, há dois recursos bem modernos que podermos usar para evitar o
problema com o bloqueio de scripts — async e defer (que vimos acima). Vamos
ver as diferenças entre esses dois?
Os scripts que são carregados usando o atributo async (veja abaixo) irão baixar o
script sem bloquear a renderização da página e irão executar imediatamente após
o script terminar de ser disponibilizado. Nesse modo você não tem garantia
nenhuma que os scripts carregados irão rodar em uma ordem específica, mas
saberá que dessa forma eles não irão impedir o carregamento do restante da
página. O melhor uso para o async é quando os scripts de uma página rodam de
forma independente entre si e também não dependem de nenhum outro script.
Por exemplo, se você tiver os seguintes elementos script:
HTML
Você não pode garantir que o script. jquery.js carregará antes ou depois do
script2.js e script3.js . Nesse caso, se alguma função desses scripts
dependerem de algo vindo do jquery , ela produzirá um erro pois o jquery ainda
não foi definido/carregado quando os scripts executaram essa função.
async deve ser usado quando houver muitos scripts rodando no background, e
você precisa que estejam disponíveis o mais rápido possível. Por exemplo, talvez
você tenha muitos arquivos de dados de um jogo para carregar que serão
necessários assim que o jogo iniciar, mas por enquanto, você só quer entrar e ver
a tela de carregamento, a do titulo do jogo e o lobby, sem ser bloqueado pelo
carregamento desses scripts.
Scripts que são carregados utilizando o atributo defer (veja abaixo) irão rodar
exatamente na ordem em que aparecem na página e serão executados assim que
o script e o conteúdo for baixado.
HTML
Todos os scripts com o atributo defer irão carregar na ordem que aparecem na
página. No segundo exemplo, podemos ter a certeza que o script jquery.js irá
carregar antes do script2.js e script3.js e o script2.js irá carregar antes do
script3.js . Os scripts não irão rodar sem que antes todo o conteúdo da página
Comentários
Assim como HTML e CSS, é possível escrever comentários dentro do seu código
JavaScript que serão ignorados pelo navegador, e existirão simplesmente para
prover instruções aos seus colegas desenvolvedores sobre como o código
funciona (e pra você, se você tiver que voltar ao seu código depois de 6 meses e
não se lembrar do que fez). Comentários são muito úteis, e você deveria usá-los
frequentemente, principalmente quando seus códigos forem muito grandes. Há
dois tipos:
Um comentário de uma linha é escrito depois de duas barras. Por exemplo:
JS
// Eu sou um comentário
/*
Eu também sou
um comentário
*/
Então, por exemplo, você poderia fazer anotações na nossa última demonstração
de código JavaScript, da seguinte forma:
JS
function criarParagrafo() {
var para = document.createElement("p");
para.textContent = "Você clicou no botão!";
document.body.appendChild(para);
}
/*
1. Captura referências de todos os botões na página e armazena isso em um
array.
2. Vai até todos os botões e adiciona um event listener click a cada um
deles.
Nota: Em geral mais comentários são melhores que menos, porém você
deve tomar cuidado para não adicionar comentários de mais tentando
explicar o que uma variável é (o nome da sua variável deve ser mais
intuitivo), ou tentando explicar uma operação simples (talvez seu código
seja muito complicado denecessariamente).
Sumário
Então, esse foi o seu primeiro passo no mundo do JavaScript. Nós iniciamos
apenas com teoria, então te ensinamos porque usar JavaScript e que tipo de
coisa você pode fazer com ele. Pelo caminho você viu alguns códigos de exemplo
e aprendeu como JavaScript se encaixa com o resto do código do seu site, entre
outras coisas.
O JavaScript talvez pareça um pouco assustador agora, mas não se preocupe —
nesse curso você será guiado passo a passo, e tudo vai começar a fazer sentido.
No próximo artigo vamos mergulhar direto para a prática, levando você a construir
seu próprio código JavaScript.