Home Anotações sobre Javascript
Post
Cancelar

Anotações sobre Javascript

Comentários

// This is an in-line comment.

/* This is a

multi-line comment */

 

Declaração de variáveis

var ourName;

 

Tipos: undefined, null, boolean, string, symbol, bigint, number, and object.

Variable names can be made up of numbers, letters, and $ or _, but may not contain spaces or start with a number.

In JavaScript all variables and function names are case sensitive.

Write variable names in JavaScript in camelCase.

In JavaScript, you can escape a quote from considering it as an end of string quote by placing a backslash () in front of the quote.

var sampleStr = “Alan said, "Peter is learning JavaScript".”;

Introdução

  • ECMAScript é uma especificação de linguagem script criada pela Ecma International, utilizada por linguagens como: ActionScript, JScript e Javascript.
  • Javascript é uma linguagem de funções de primeira classe e funções de ordem maior, pois é possível atribuir funções a variáveis, retornar funções de outras funções e passar funções como parâmetro para outras funções Linguagem de programação executada no lado cliente. Código desprotegido. Linguagem interpretada. Script – interpretada em tempo de execução Tipagem fraca e dinâmica Case Sensitive Comentários: //linha /* bloco */ Babeljs.io para converter implementações novas em antigas
  • Closure ou escopo léxico é a capacidade da função “lembrar” do seu contexto de criação.
  • Hoisting ou içamento é a capacidade do JavaScript elevar a criação de variáveis e funções ao topo do escopo de suas criações. Existem dois tipos de Hoisting: hoisting de variável e hoisting de função. Curryng e Imutabilidade

Dentro do HTML

1
2
3
4
5
<script>                                                                      
	function nomeDaFuncao (parametros) {codigo}
</script>                                                                     
<script> language="javascript" src=""</script>                          
<img src="" onmousemove="nomeDaFuncao" onmouseout="" onclick=""></img>

Comandos iniciais

1
2
3
4
5
6
7
8
9
10
11
12
  window.alert("Olá mundo");                                          
  window.prompt("Olá mundo");                                         
  window.confirm("Olá mundo?");                                       
  document.write("Olá mundo, hoje é dia" + Date());                   
  document.getElementById("").src = "";                             
  console.log('')                                                     
  Number.parseInt(n) //converter string em int                          
  Number.parseFloat(n) //converter string em float                      
  Number(n) //converter string para número com tipo altomático          
  String(n) ou n.toString() //converter número para String              
  typeof var //retorna o tipo da variável                               
  throw new Error ('mensagem de erro') // indica o erro no console   

Atributos e funções internas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
.length: tamanho da string                                                                   
                                                                                      
 .toUpperCase(): string em letras maiúsculas                                                                      
                                                                                                                  
 .toLowerCase(): string em letras minúsculas                                                                      
                                                                                                                  
 .toFixed(numero de casas).replace('.',','): para definir quantas casas decimais, e trocar ponto por vírgula. 
                                                                                                                  
 .toLocaleString('pt-br' , {style: 'currency', currency: 'BRL'}) //para exibir na forma monetária           
                                                                                                                  
 .includes(""):verificação de string, resultado bool                                                            
                                                                                                                  
 .indexOf('busca', posicaoInicial): mapeamento da string para retornar busca                                    
                                                                                                                  
 .lastIndexOf() busca reversa, começando do fim                                                                   
                                                                                                                  
 .substring(,): retornar uma parte da string                                                                      
                                                                                                                  
 .replace(,)                                                                                                      
                                                                                                                  
 .slice(,) para criar um novo array, valor final não incluso                                                      
                                                                                                                  
 .push() inclui um novo elemento no final do array                                                                
                                                                                                                  
 .pop() remove o ultimo item do array                                                                             
                                                                                                                  
 .sort() ordenar elementos                                                                                        
                                                                                                                  
 .filter()                                                                                                        
                                                                                                                  
 .forEach()                                                                                                       
                                                                                                                  
 .getHour()                                                                                                       
                                                                                                                  
 .getFullYear()                                                                                                   
                                                                                                                  
 .innerHTML para editar o html                                                                                    
                                                                                                                  
 .innerText para editar texto simples na página                                                                   
                                                                                                                  
 .createElement                                                                                                   
                                                                                                                  
 .appendChild() adicionar elemento filho                                                                          
                                                                                                                  
 .focus()                                                                                                         
                                                                                                                  
 .disabled = true//false                                                                                          
                                                                                                                  
 new Date()                                                                                                       

Tanto as propriedades .value, .textContent, e .innerHTML servem para definir um novo valor ou recuperar o valor atual.

Tipos de dados

string, number, boolean, null, undefined, symbol, Object, Function, Array.

1
2
3
4
5
6
7
8
9
var cria variáveis globais                                   
let cria variáveis locais                                    
var alfa = "strings";                                      
var num = 50.03;                                             
var bol = true;                                              
var objetoarray = new Array("Maçã", "Laranja", "Uva"); 
var objeto = new Object ()                                   
const a = 3.14
Array é um objeto. objeto[0]. objeto[1]. objeto[2]     

Nomes de variáveis podem começar com letra, $ ou _. Não podem começar com números, mas podem conter números, acentos e símbolos. Não podem conter espaços e nem usar palavras reservadas. Template string: uma forma mais fácil de concatenar strings: ${s}

Valores falsos

false: the boolean value false 0: the number zero ‘’: the empty string, a string with no characters NaN : stands for “Not a Number”, usually caused by math errors undefined: a variable’s value before it is assigned a value null: a blank value that can be assigned to a variable

Operadores

 

= atribuição

  • soma ou concatenação de strings

  • subtração

  • multiplicação

/ divisão real

% resto da divisão inteira

** potenciação

Precedências: () *** / % o que vier antes da esquerda pra direita+-

++ incremento de 1(executado depois de outras operações se estiver do lado direito da variável. pode ser ++x)

– decremento de 1(igual anterior)

+= soma com o valor a direita e atualiza a variável

-= subtrai o valor a direita e atualiza a variável

*= same

/= same

%= same

Relacionais

== mesmo valor mesmo que tipos diferentes

=== mesmo valor e mesmo tipo

!= diferentes em valor

!== diferentes em valor e em tipo

< menor que

maior que

<= menor igual

= maior igual

Lógicos

! negação

& e

ou

&& e verificando a primeira condição e já resultando falso se for o caso

 ou verificando a primeira condição e já resultando verdadeiro se for o caso
Precedência: aritméticosrelacionais!&& 

Comandos de decisão e controle

Comandos de decisão

if(condição) {}

else if(condição) {}

else{}

switch(valor){case 0 …break; default}

 

Operador ternário substitui if else

test ? doThisIfTrue : elseDoThis

 

Comandos de repetição - laços - iterações

for(inicialização; condição; incremento) {}

for(elemento in array) {}

while(condição) {}

do {} while(condição)

 

Comandos de controle

break interrompe repetição

continue interrompe a execução atual da repetição mas permite a continuação do laço

Funções e exceções

Criando funções

function nomeDaFuncao(parâmetros) {}

 

Funções

Chamada - parâmetro - ação - retorno

Função literal:

function ação (param) {

return res

}

ação(5) //chamada

Funções podem ser tratadas como objetos, e receber atributos. Podem ser anônimas. Podem ser passadas como parâmetro para outras. Todas as funções possuem um atributo .name. Apenas funções criam escopos de variáveis (ECMA antigo). Nas versões novas o let cria variáveis em escopo de função. As funções também possuem o atributo .argument que apresenta os parâmetros que foram passados.

A herança em JavaScript ocorre por meio do seu protótipo.

Funções auto executáveis: Immediately-invoked function expression IIFE:

(function(){

}) {}

Funções que se auto invocam, para não poluirmos o escopo global desnecessariamente. É interessante perceber que esse tipo de função só tem valor quando estamos desenvolvendo para o browser, onde tudo fica “pendurado” no objeto principal chamado window. Se estivéssemos desenvolvendo para NodeJS, por exemplo, essa preocupação não existiria.

 

Função construtora de objetos personalizados

1
2
3
4
5
6
7
8
9
 function Construtora() {    //funções construtoras com nomes em letra maiúscula, por convenção. Atributos criados com var são locais e privados. 
                                                                                                                                                
 var atributoPrivado                                                                                                                            
                                                                                                                                                
 this.atributo = 1;                                                                                                                             
                                                                                                                                                
 this.metodo = function(){}                                                                                                                     
                                                                                                                                                
 }                                                                                                                                              

para criar os objetos sempre use o new Construtora(), para evitar problemas de referência com o this.

Tratando exceções

try{

//código a ser testado

} catch(e) {

//tratamento do erro

}

DOM

Entendendo o DOM

Document Object Model - apenas no navegador

Árvore DOM: window (location; document; history)

document(html) //// html(head; body)

Métodos de acesso:

  • Por marca: getElementsByTagName(‘tag’)[n]

  • Por ID: getElementById()

  • Por Nome: getElementsByName()[]

  • Por Classe:getElementsByClassName()[]

  • Por Seletor: querySelector(‘identificação no css’) /// querySelectorAll(‘body.caixa’)

  • .[name].value

 

Acessando atributos no HTML

Algumas propriedades podem ser acessadas e modificadas usando o DOM 0 e DOM 2

1
2
3
4
5
6
7
 $elemento.id //0                             
                                               
 $elemento.maxLength = 10 //0                 
                                               
 $elemento.getAttribute('readonly') //2     
                                               
 $elemento.setAttribute('id', 'myId') //2 

 

 

Eventos DOM

Listeners no JavaScript:

a.addEventListener(‘mouseenter’, functionname)

mouseenter

mousemove

mousedown

mouseup

click

mouseout

 

Caixas de diálogo

Alerta: exibir mensagem na tela. alert(mensagem)

Confirmação: solicita confirmação do usuário. confirm(mensagem)

Solicitação de informação. prompt(mensagem, valorinicial)

 

Eventos

Situações que disparam um código. Chamadas no HTML:

onBlur: foco sai do elemento.

onChange: elemento muda de valor.

onClick: Elemento é clicado.

onFocus: Foco é colocado no elemento.

onLoad: Página é carregada.

onUnload: Usuário clica para destino fora da página.

onMouseOver: Mouse entra na área do elemento.

onMouseOut: Mouse deixa a área do elemento.

onMouseDown: Mouse clica no elemento (ida).

onMouseUp: Mouse clica no elemento (volta).

onKeyPress: Tecla é digitada no elemento.

onKeyDown: Tecla é digitada no elemento (ida).

onKeyUp: Tecla é digitada no elemento (volta).

onSubmit: Elemento é enviado.

 

Extras

• Redirecionar para URL

– location.href(URL)

• Abrir nova janela

– open(URL)

• Interagindo com marcações HTML

– Atributo id do HTML

– document.getElementById(id)

• Agendamento de tarefas

– setTimeout(funcao, tempoMilisegundos)

 

Formulários

• Objeto de acesso ao documento HTML

– document

• Objeto de acesso aos formulários

– document.forms[name]

• Acessando campos de um formulário

– document.forms[name].namedocampo

• Principais propriedades dos campos

– value: conteúdo do campo

– length: tamanho do campo

– checked: informa se o campo está checado

– selectedIndex: número da opção selecionada

 

DOM level 0 - alguns problemas

No html No JS —————————- —————— <p onclick=”função()” p.onclick=funcao

DOM level 2 - mais recomendado p.addEventListener(“click”, funcao, bool capture);

Propagação de eventos: capacidade dos eventos de percorrerem a estrutura do HTML, desde o elemento original até o nível mais alto (body). Bool capture: valor padrão é falso. Altera a propagação dos eventos.

Objeto Event: objeto passado por parâmetro para a função que foi atrelada, nos fornecendo várias informações adicionais sobre o evento em si. Este objeto varia de acordo com o tipo de evento.

1
2
3
4
5
6
7
8
9
10
11
 document.addEventListener('click', function (objetoEvento){       
                                                                     
 console.log(objetoEvento);                                          
                                                                     
 console.log(objetoEvento.currentTarget);                            
                                                                     
 console.log(objetoEvento.target);                                   
                                                                     
 objetoEvento.stopPropagation(); //interrompe a propagação do evento 
                                                                     
 })                                                                  

Delegação: técnica que consiste em atrelar o evento a um elemento mais alto e verificar qual foi o elemento clicado.

1
2
3
4
5
6
7
8
9
 ul.addEventListener('click', function (objetoEvento){                
                                                                        
 console.log(objetoEvento.target); //retorna qual li foi clicada        
                                                                        
 console.log(objetoEvento.target.nodeName) //retorna o tipo do elemento 
                                                                        
 objetoEvento.stopPropagation(); //interrompe a propagação do evento    
                                                                        
 })                                                                     

Variáveis compostas Vetores e arrays

Conjuntos de dados Array[] Objeto{} Construtor: new Object() Objetos armazenam atributos e métodos (funções) É possível criar um array de objetos. [{},{},{}] Alguns objetos são relativos ao ambiente de hospedagem (ex: window.alert(‘’) só para navegador)

Strings

Literais var meuTexto = “Olá Mundo!”; Objetos var meuTexto = new String(“Olá Mundo!”); Métodos e Propriedades:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 .length //tamanho da string                                                        
                                                                                    
 .toUpperCase() //string em letras maiúsculas                                       
                                                                                    
 .toLowerCase() //string em letras minúsculas                                       
                                                                                    
 .replace('.',',') //para substituir caracteres                                 
                                                                                    
 .includes("") //verificação de string, resultado bool                            
                                                                                    
 .indexOf('busca', posicaoInicial) //mapeamento da string para retornar busca     
                                                                                    
 .lastIndexOf() //busca reversa, começando do fim                                   
                                                                                    
 .substring(,) //retornar uma parte da string                                       
                                                                                    
 .slice(,) //para criar um novo array, valor final não incluso - posições ordenadas 
                                                                                    
 .split() //retorna um array separando as partes da string original                 
                                                                                    
 .valueOf() //retorna o valor primitivo                                             

Number

Literais var meuNum = 123; Objetos var meuNum = new Number(“123”); Métodos e Propriedades:

MAX_VALUE //pripriedade estática, do construtor                                                                       
MIN_VALUE //pripriedade estática, do construtor                                                                       
toFixed() //para definir quantas casas decimais são exibidas                                                          
toPrecision() //arredonda para um valor definido de casas decimais                                                    
String(n) ou n.toString() //converter número para String, pode ser usado para converter para hexadecimal, binário etc 
toExponential() //retorna a notação científica do número                                                              

Math

Métodos e propriedades são estáticos, ou seja, pertencem ao próprio construtor.

1
2
3
4
5
6
7
8
9
10
Math.min() //retorna o menor valor    
Math.max() //retorna o maior valor    
Math.round() //arredondar             
Math.floor() //arredondar para menos  
Math.ceil() //arredondar para mais    
Math.pow(,) // retorna a potência     
Math.sqrt() //retorna a raiz quadrada 
Math.cbrt() //retorna raiz cubica     
Math.random() //retorna um aleatorio  
Math.PI //retorna o valor de PI       
Esta postagem está licenciada sob CC BY 4.0 pelo autor.