O que realmente é JavaScript
JavaScript é uma linguagem de programação que pode ser aplicada em um documento HTML e usada para criar dinâmicas interativas em sites. Ela foi inventada por Brendan Eich, co-fundador do projeto Mozilla, da Fundação Mozilla e das Corporações Mozilla.
Você pode fazer muita coisa com JavaScript. Você vai começar com coisas simples como ajustar layouts, fazer coisas acontecerem quando botões são clicados, sliders e galerias de imagem — mas eventualmente na medida que você ganhar experiência com a linguagem, você poderá criar jogos, animações em 2D e 3D, aplicativos com base de dados desenvolvidas, e muito mais.
JavaScript é por si só uma linguagem compacta, mas é muito flexível, e desenvolvedores tem escrito um monte de ferramentas para que você possa ter acesso a um monte de funcionalidades extras com pequeno esforço. Essas incluem:
- Application Programming Interfaces (APIs) construídas em web browsers que permitem fazer tudo sobre criar HTML e estilos de CSS, para pegar e manipular um stream de vídeo da webcam de um usuário, ou gerar gráficos 3D e amostras de áudio.
- 3rd party APIs que permitem aos desenvolvedores incorporarem funcionalidades em seus sites de outras propriedades, como Twitter ou Facebook.
- 3rd party frameworks e livrarias que você pode aplicar em seu HTML para permitir que você construa rapidamente sites e aplicações.
Um exemplo "hello world"
A sessão abaixo soa excitante, e de fato o é — JavaScript é uma das tecnologias web mais excitantes, e quando você começar a ficar bom nisso, seus sites vão entrar em uma nova dimensão de poder e criatividade.
NO ENTANTO, JavaScript é um pouco mais difícil de ficar confortável do que HTML e CSS, e você terá que começar devagar e continuar trabalhando em pequenos passos. Para começar, nós vamos mostrar a você como adicionar algum Javascript realmente básico para sua página, para criar um exemplo "hello world!"
- Primeiro, vá na sua página de teste e crie um novo arquivo chamado
main.js. Salve na sua pastascripts. - Depois, vá no seu arquivo
index.htmle entre o seguinte conteúdo em uma nova linha antes da tag de fechamento</body>:<script src="scripts/main.js"></script> - Isso é basicamente o mesma coisa que o elemento
<link>para CSS — ele aplicar o JavaScript na página, para que ela tenha efeito no HTML (e CSS, e o que mais aparecer na página). - Agora adicione o seguinte código no arquivo
main.js:var myHeading = document.querySelector('h1'); myHeading.innerHTML = 'Hello world!'; - Agora tenha certeza que seus arquivos HTML e Javascript estão salvos, e carregue o
index.htmlno seu browser. Você deve ver algo do tipo:
Então seu cabeçalho mudou para "Hello world!" usando JavaScript. Nós fizemos isso usando uma função chamada
querySelector() para pegar uma referência do nosso cabeçalho e armazená-la em uma variável chamada myHeading. Isso é similar ao que fizemos em CSS usando seletores — nós queremos fazer algo a um elemento, então precisamos selecioná-lo primeiro. Depois disso, nós indicamos o valor da propriedade myHeading innerHTML (que representa o conteúdo do cabeçalho) para "Hello world!".Variáveis
Variables são caixas nas quais você armazena valores. Você começa declarando uma variável com a palavra-chave
var, seguida por qualquer nome que você queira chamá-la:var myVariable;Depois de declarar uma variável, você pode dar a ela um valor:
myVariable = 'Bob';
Você pode retornar o valor chamando a variável pelo nome:
myVariable;
Você pode fazer as duas operações na mesma linha se você quiser:
var myVariable = 'Bob';
Depois de dar à variável um valor, você pode mudá-lo:
var myVariable = 'Bob';
myVariable = 'Steve';
Note que as variáveis tem diferentes tipos de dados:
| Variáveis | Explicação | Exemplo |
|---|---|---|
| String | Um valor para um texto. Para mostrar que a variável é um texto, você deve envolvê-la em aspas. | var myVariable = 'Bob'; |
| Number | Um número. Números não tem aspas ao redor deles. | var myVariable = 10; |
| Boolean | Um valor Verdadeiro/Falso. A True/False value. true/false são palavras especiais em JS e não precisam de aspas. | var myVariable = true; |
| Array | Uma estrutura que permite o armazenamento de vários valores em uma mesma referência. | var myVariable = [1,'Bob','Steve',10];Call each member of the array like this: myVariable[0], myVariable[1], etc. |
| Object | Basicamente, qualquer coisa. Tudo em JavaScript é um objeto e pode ser armazenado em uma variável. Tenha isso em mente enquanto aprende. | var myVariable = document.querySelector('h1');All of the above examples too. |
Então por que nós precisamos de variáveis? Bom, variáveis são necessárias para fazer tudo em programação. Se os valores não puderem mudar, então você não poderá fazer nada dinâmico, como personalizar uma mensagem de boas-vindas para o usuário que visita seu site, ou mudar a imagem mostrada em uma galeria de imagens, etc.
Comentários
Você pode colocar comentários em códigos JavaScript, assim como pode em CSS. Em JavaScript, linhas simples de comentário são escritas assim:
// This is a comment
Mas você também pode usar o código CSS para comentários multi linha:
/*
This is a multi line
comment
*/
Operadores
Um operator é basicamente um símbolo matemático que pode atuar em dois valores (ou variáveis) e produzir um resultado. Na tabela a seguir, você pode ver alguns dos operadores mais simples, com alguns exemplos para tentar em seu console de browser.
| Operator | Explanation | Symbol(s) | Example |
|---|---|---|---|
| adição/concatenação | Usado para somar dois números ou juntar duas strings. | + | 6 + 9; |
| subtrair, multiplicar, dividir | Essas fazem o que você espera que elas façam na matemática básica. | -, *, / | 9 - 3; |
| operador de atribuição | Você já viu essa: ela associa um valor a uma variável. | = | var myVariable = 'Bob'; |
| Operador de identificação | Faz um teste para ver se dois valores são iguais um ao outro, retornando um resultado true/false (boolean). | === | var myVariable = 3; |
| Negação, não igual | Geralmente usados ao lado do operador de Igualdade, o operador de negação é o equivalente em JS ao lógico NOT — torna true um false, etc. | !, !== |
A expressão básica é
true, mas a comparasão retorna false porque nós a negamos:var myVariable = 3;
Aqui nós estamos testando "é
myVariable NOT igual a 3". Isso retorna false, porque isso É igual a 3. |
Há muito mais a explorar, mas pararemos por aqui. Veja Expressions and operators para uma lista completa.
Condicionais
Conditionais são estruturas de código que te permitem testar se uma expressão retorna verdadeiro ou não, e então executam diferentes linhas de código dependendo do resultado. A forma mais comum de condicional é chamada
if ... else. Então, por exemplo:var iceCream = 'chocolate';
if (iceCream === 'chocolate') {
alert('Yay, I love chocolate ice cream!');
} else {
alert('Awwww, but chocolate is my favorite...');
}
A expressão dentro do
if ( ... ) é o teste — ela usa o operador de identificação (como descrito anteriormente) para comparar a variável iceCream com a string chocolate para ver se elas são iguais. Se essa comparação retorna true, execute o primeiro bloco de código. Se não, pule esse código e execute o segundo bloco depois do comando else.Funções
Functions são uma maneira de encapsular funcionalidades que você tem que usar mais de uma vez, então você pode chamar aquela função com um nome simples de função, e não reescrever todo o código de novo e de novo a cada vez que você quiser usá-lo. Você já viu algumas funções, por exemplo:
var myVariable = document.querySelector('h1');alert('hello!');
Essas funções são construídas no browser para você usar quando quiser.
Se você vê algo que parece com um nome de variável, mas com parênteses —
() — depois disso, provavelmente é uma função. Funções geralmente tem arguments — pedaços de dados que eles precisam para fazerem o trabalho delas. Esses são colocados dentro dos parênteses e separados por vírgulas se houver mais de uma.
Por exemplo, a função
alert() fazer com que uma caixa pop-up apareça dentro da janela do browser, mas nós precisamos de dar a ela um string como um argumento para dizer qual mensagem deve ser escrita na caixa pop-up.
A nóticia boa é que você pode definir suas próprias funções — no próximo exemplo nós escrevemos uma função simples que toma 2 números como argumentos e os multiplica:
function multiply(num1,num2) {
var result = num1 * num2;
return result;
}
Tente rodar o código acima no console, e então tente usar sua nova função algumas vezes. Por exemplo:
multiply(4,7);
multiply(20,20);
multiply(0.5,3);
Eventos
Para criar interatividade em um site, você tem que usar eventos — estruturas de código que percebem as coisas que acontecem no browser e permitem que você rode um código em resposta a essas coisas acontecendo. O mais óbvio exemplo é o click event, que é disparado pelo browser quando o mouse clica em algo. Para demonstrar isso, tente entrar com o código no seu console, e depois clique na página:
document.querySelector('html').onclick = function() {
alert('Ouch! Stop poking me!');
}
Há muitas maneiras de associar um evento a um elemento; aqui estamos selecionando o elemento HTML e fazendo sua propriedade
onclick igual a uma função anônima que contem o código que nós queremos rodar quando o clique ocorrer.
Note que
document.querySelector('html').onclick = function() {};
é equivalente a
var myHTML = document.querySelector('html');
myHTML.onclick = function() {};
É só uma maneira mais curta de escrever isso.
Dando uma carga no seu site exemplo
Agora que nós revimos o básico de JavaScript, vamos adicionar algumas funcionalidades básicas ao nosso site para te dar as primeiras noções do que é possível.
Adicionando um modificador de imagem
Nessa parte, nós adicionaremos outra imagem no nosso site, e vamos adicionar JavaScript para mudar entre as duas quando a imagem é clicada.
- Antes de tudo, ache outra imagem que você gostaria que aparecesse no seu site. Tenha certeza que ela tem o mesmo tamanho que sua primeira imagem, ou o mais perto disso possível.
- Salve a imagem na pasta
images. - Vá no seu arquivo
main.js, e digite o seguinte código JavaScript (se seu hello world em JavaScript ainda estiver lá, delete-o):
var myImage = document.querySelector('img'); myImage.onclick = function() { var mySrc = myImage.getAttribute('src'); if(mySrc === 'images/firefox-icon.png') { myImage.setAttribute ('src','images/firefox2.png'); } else { myImage.setAttribute ('src','images/firefox-icon.png'); } }- Salve todos os arquivos e carregue o
index.htmlno browser. Agora quando você clicar na imagem, ela deve mudar para a outra!
Então aqui, nós estamos armazenando uma referência ao nosso elemento de imagem na variável
myImage. Depois, nós fazemos o evento onclick dessa variável igual a uma função anônima. Agora, toda vez que esse elemento de imagem é clicado:- Nós recuperamos o valor do atributo
srcda imagem. - Nós usamos uma condicional para checa se o valor
srcé igual ao caminho da imagem original:- Se for, nós mudamos o valor do
srcpara o caminho da segunda imagem, forçando a outra imagem a ser carregada dentro do elemento<image>. - Se não é (significando que já mudou), nós mudamos o valor
srcde volta ao caminho da imagem original, para mudar ao que era antes.
- Se for, nós mudamos o valor do
Adicionando uma mensagem personalizada de boas vindas
Agora nós vamos adicionar um pouco mais de código, para mudar o título da página, incluindo uma mensagem personalizada de boas vindas para quando um usuário realiza sua primeira visita ao site. Essa mensagem de boas vindas vai persistir quando o usuário deixar o site e voltar. Nós vamos ainda incluir uma opção para mudar o usuário e portanto a mensagem de boas vindas aparecerá sempre que necessária.
- Em
index.html, adicione a seguinte linha de código antes do elemento<script>:<button>Change user</button> - Em
main.js, adicione o seguinte código no fim do arquivo, exatamente como está escrito — isso pega referências para o novo botão que adicionamos e para o cabeçalho, e guarda ambos em variáveis:var myButton = document.querySelector('button'); var myHeading = document.querySelector('h1'); - Agora adicione a seguinte função para criar a saudação personalizada — isso não vai fazer nada ainda, mas usaremos mais tarde:
Essa função contem uma funçãofunction setUserName() { var myName = prompt('Please enter your name.'); localStorage.setItem('name', myName); myHeading.innerHTML = 'Mozilla is cool, ' + myName; }prompt(), que traz uma caixa de diálogo assim como oalert()faz; a diferença é que oprompt()pede ao usuário para inserir algum dado, e guarda os dados em uma variável quando o botão OK é pressionado. Nesse caso, nós estamos pedindo ao usuário para digitar seu nome. Agora, nós invocamos uma API chamadalocalStorage, o que nos permite guardar dados no browser, e o usa mais tarde. Nós usamos a funçãosetItem()do localStorage's para criar e guardar um item de dado chamado'name', e relaciona seu valor à variávelmyNameque contem o nome que o usuário digitou. Finalmente, nós associamos oinnerHTMLdo cabeçalho a uma string, mais o nome do usuário. - Agora, adicione esse bloco
if ... else— nós podemos escrever esse código de inicialização, assim ele estabelece o aplicativo quando ele abrir pela primeira vez:
Primeiramente, esse bloco usa o operador de negação (logical NOT) para checar se o item de dadosif(!localStorage.getItem('name')) { setUserName(); } else { var storedName = localStorage.getItem('name'); myHeading.innerHTML = 'Mozilla is cool, ' + storedName; }nameexiste — se não existir, a funçãosetUserName()roda para criá-lo. Se ele já existir (isso é, o usuário tiver digitado quando visitou o site anteriormente), nós recuperamos o nome guardado usandogetItem()e associamos oinnerHTMLdo cabeçalho a uma string, mais o nome do usuário, assim como fizemos dentro desetUserName(). - Finalmente, coloque o gerenciador de evento
onclickno botão, para que quando clicado, ele rode a funçãosetUserName(). Isso permite ao usuário dar um novo nome sempre que quiserem ao pressionar o botão:myButton.onclick = function() { setUserName(); }
Agora quando você visitar seu site pela primeira vez, vai te perguntar o nome de usuário e te dar uma mensagem personalizada. Você pode então mudar o nome toda vez que quiser ao pressionar o botão. Como um bonus, porque o nome é guardado dentro de localStorage, ele persiste depois que a janela do site é fechada, então a mensagem personalizada sempre estará lá quando você abre o site novamente!
Fonte : developer.mozilla.org
Video aula:
Nenhum comentário:
Postar um comentário