Pular para o conteúdo principal

Postagens

JS - Operador vírgula

Esse operador une várias expressões em uma, comumente utilizado na declaração de variáveis em uma única linha, também pode ser usado no retorno de funções, onde a última expressão é retornada após a execução das anteriores. Na declaração de variáveis var x, y = 99, z; (aqui temos a declaração de três variáveis, sendo "x" e "z" do tipo "undefined" e a "y" numérica com o valor 99) No retorno de funções function teste(x) { return ( x += 1, x ); } (nessa função o valor passado por parâmetro é incrementado e em seguida retornado)

JS - Instruções condicionais - switch

O switch, a exemplo do "if", tem como finalidade a realização de um teste para determinar qual instrução deverá ser interpretada, ele é composto por um valor a ser testado e de um conjunto de possíveis hipóteses, também é possível determinar um fluxo padrão caso nenhuma das hipóteses seja verdadeira. Sintaxe Basicamente temos o "switch" para determinar o que será testado, o "case" para definir os possíveis resultados, o "break" para encerrar os testes caso uma das hipóteses seja verdadeira e o "default" para o caso de nenhuma das hipóteses ser verdadeira. É importante ressaltar do "break", se ele não for incluído as próximas hipóteses continuarão a ser testadas. switch( "valor" ){ case "hipótese 1": "instrução 1" break; case "hipótese 2": "instrução 2" break; default: "instrução default" break; } Exemplo Vamos criar um

JS - Funções - retornos e parâmetros com arrays e objetos

Vimos no post sobre funções que uma função pode possuir parâmetros e retornar valores, e na ocasião trabalhamos apenas com tipos primitivos da linguagem, e hoje veremos como receber e retornar arrays e objetos. Retorno Uma função que retorna um tipo mais complexo como um array ou um objeto pode nos ajudar, dentre outras coisas, a evitar a declaração de variáveis globais, também pode diminuir a complexidade de uma operação, vejamos alguns exemplos: function nomes() { return ['maria', 'teresa', 'flávia']; }; (essa rotina nos retorna uma lista de nomes); nomes()[1]; (como o retorno é um array conseguimos acessar um elemento conhecido por meio de seu indice); function recuperarPessoa() { var pessoa = { nome: 'Filisteu', idade: 89, sobre: function(){ return pessoa.nome + ', ' +  pessoa.idade + ' anos'} }; return pessoa; }; (essa rotina retorna um objeto, sendo que esse objeto possui propriedades e métodos); recuperarPessoa().n

JS - Escopo de variáveis e funções

Escopo de variáveis diz respeito aos locais onde uma variável pode ser acessada, é muito importante ter isso em mente pois uma abordagem errada na definição pode resultar em variáveis permanentes na memória, consumindo recurso computacional, valores sendo substituídos de maneira não controlada seja com limpezas ou mesmo substituições. Tipos Basicamente temos como tipos de escopo: Global - quando temos uma variável fora de função, onde o que for criado dessa forma pode ser acessado em qualquer lugar; var testeGlobal = 1; (variável global com o valor 1) function alterarValorGlobal() { testeGlobal = 2; }; (função que altera um valor que não pertence a seu escopo) Local - quando temos uma variável em uma função, o que é criado dessa forma só pode ser usado dentro da função. Essa é a forma recomendada, uma vez que as variáveis são mantidas em memória apenas enquanto a função estiver em execução, eliminando os riscos de substituição de valores ou permanência apos o u

JS - Condicional ternário

Utilizado para a simplificação de uma condição "if" para casos simples, onde desejamos apenas testar uma condição para determinar um valor. Em sua sintaxe temos a condição de comparação, seguido de "?" que define o valor a ser utilizado caso a condição seja verdadeira, em seguida temos ":" que define o valor a ser utilizado caso a condição seja falsa: "condição" ? "resultado caso condição verdadeira" : "resultado caso condição falsa"; Agora alguns exemplos (considerando var pessoa;): pessoa = pessoa ? true : false; (pessoa receberá false, pois a variável pessoa é undefined e como vimos esse tipo é falsy); pessoa = pessoa ? { nome: 'Já existo!' } : { nome: null }; (como pessoa tem o valor é false ela receberá um objeto com a propriedade nome com o valor null); pessoa = pessoa ? { nome: 'Já existo!' } : { nome: null }; (agora pessoa tem como valor um objeto, logo ela receberá outro objeto cuj

JS - Truthy e falsy

Anteriormente vimos como condicionar o fluxo execução com a estrutura condicional "if", comparando valores, hoje veremos como o Javascript entende o que são valores verdadeiros e falsos, através do "truthy" e "falsy", Falsy Quando um valor convertido em booleano representa o valor false, sendo eles (considerando var teste;): undefined (if (undefined) teste = true; else teste = false;) null (if (null) teste = true; else teste = false;) NaN (if (NaN) teste = true; else teste = false;)  0 (if (0) teste = true; else teste = false;) -0 (if (-0) teste = true; else teste = false;) '' (if ('') teste = true; else teste = false;) "" (if ("") teste = true; else teste = false;) false (if (false) teste = true; else teste = false;) Todos os exemplos acima retornam falso, mantendo a variável "teste" com o valor "false". Truthy Quando um valor convertido em booleano representa true, sen

JS - Tipos de dados e objetos

Iniciaremos nesse post a ver o que são e como são construídos os objetos no Javascript, devemos ter em mente que os objetos em geral refletem um objeto da vida real, possuindo propriedades e comportamentos que o descreve. Tipos primitivos Os tipos primitivos são os já vistos até aqui, fornecidos pela própria linguagem: number, números inteiros ou decimais; string, texto contido entre '' ou ""; boolean, true ou false; null, sem valor atribuído; undefined, desconhecimento de valor; Tipo objeto Tudo o que não for um um tipo primitivo é um objeto, vamos a alguns exemplos: { prop1: 1, prop2: 'Teste' } (objeto anonimo contendo duas propriedades); meuObjeto = { cod: 100, nom: 'abcd', tip: true} (objeto chamado "meuObjeto" tres propriedades); meuObjeto.cod (acessando diretamente o valor da propriedade "cod" do objeto "meuObjeto"); var obj = function() {return 'Funcao anonima'}; (objeto "obj&quo