Pular para o conteúdo principal

Postagens

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

JS - Instruções condicionais (if)

Quando precisamos condicionar a execução em nossa aplicação precisamos utilizar uma das instruções condicionais, a mais simples é condição "if" que realiza um teste, ou vários testes acompanhados de operadores lógicos, e avalia o resultado, se todos os testes forem verdadeiros a sua instrução é executada, caso contrário não. Com o "if" também podemos incluir testes adicionais caso o primeiro teste falhe por meio do "else if". Caso nenhuma das condições sejam verdadeiras podemos definir um fluxo final com o "else". Exemplo: if ("condicao 1") { "instrucao 1" } else if ("condicao 2") { "instrucao 2" } else { "instrucao 3" } if Define o fluxo do programa, quando a validação de um "if" é verdadeira a instrução "dentro" dele será executado: var x = 10; var y = 20; if (x === 10) { y = 21; } "verdadeiro, pois x é igual a 10, logo y receberá o nov

JS - Estrutura léxica

Conjunto de regras da linguagem que nos direciona para a forma correta de se programar na mesma, desde a nomeação de variáveis, funções, tipos de caractere permitidos, criação de comentários, como separar instruções, etc. Case sensitive No Javascript ocorre a diferenciação de letras minusculas e maiúsculas, ou seja, uma variável declarada como "pessoa" é diferente de uma variável declarada como "Pessoa": var pessoa = 'Adamastor'; var Pessoa = 'Hermenegildo'; Comentários Para documentar nosso código, deixando a interpretação do mesmo mais simples para futuras consultas podemos incluir comentários, podemos criar comentário de linha usando "//" e o de bloco "/* */", lembrando que comentários são ignorados pelo interpretados do Javascript: // Rotina supimpa /* Rotina muito supimpa */ Literais Valores que aparecem diretamente no programa, que por não estarem relacionados a uma variável nunca mudam

JS - Operadores unários

Podemos considerar como operadores unários aqueles que atuam sozinhos, anteriormente vimos alguns operadores para a realização de incremento/decremento de valores e agora veremos mais alguns casos: "+" com esse operador somos capazes de converter um valor para numero, caso seja usado com um valor que não é número temos como resultado "NaN" (not a number), ele também é capaz de concatenar strings, em relação a concatenação vale ressaltar que sempre que uma string estiver envolvida o resultado será uma string concatenada, e quando os valores envolvidos forem todos números temos como resultado uma soma; "-" com esse operador, alem de podermos converter um valor para número nós também o negativamos, vale ressaltar que se ele estiver a esquerda de uma variável o valor da mesma não é alterado;