Pular para o conteúdo principal

Postagens

JS - IIFE - immediatley-invoked function expression

Função auto-executável, composta por duas partes, sendo elas a função anônima, encapsulada entre parenteses e a execução, que como visto anteriormente corresponde a abre/fecha parenteses.  Como grande vantagem essa abordagem previne o acesso externo as suas variáveis assim como ela evita poluir o escopo global: (function() {    var n1 = 10;    var n2 = 20;           console.log(n1 + n2);    })();

JS - Hoisting

Comportamento do Javascript que eleva ao topo do escopo variáveis e funções literais, ou seja, mesmo que uma variável seja declarada no meio do programa a mesma será colocada no inicio, o ponto de atenção aqui é quanto a atribuição de valores, pois essa permanece no local original.  Esse comportamento pode gerar problemas pois podemos ser levados a acreditar que as coisas deveriam estar corretas quando na verdade não, uma dica é manter as variáveis no topo dos escopos juntamente com suas atribuições. Agora alguns exemplos usando o escopo de uma função para exemplificar: Variáveis Já sabemos que as variáveis "a" e "b" só podem ser acessadas dentro do escopo da função "TesteHoisting", mas o que deve ocorrer com a implementação abaixo? Bom de acordo com o que vimos, o "hoisting" irá elevar as variáveis "a" e "b" ao topo do escopo, e, apesar das variáveis existirem ambas estarão com o valor "undefined", quando

JS - Introdução a programação funcional

Em resumo, programação funcional é o paradigma de programação baseado em funções e suas características que evita estados ou dados mutáveis. Para trabalhar nesse paradigma a linguagem deve possuir algumas características: Funções são objetos de primeira classe As funções são tratadas como objetos, ou seja, tudo que é possível fazer com objetos também pode ser feito com funções. Um objeto literal var pessoa = { nome: 'Eduardo', sexo: 'Masculino'} Uma função literal function soma(a, b) { return a + b; } Atribuição de um objeto var carro = {}; Atribuição de uma função var func = function func() {}; Uma função pode retornar um objeto Permite que e as propriedades desse objeto possam ser acessadas a partir da execução da função: function recuperarCarro() {   return { marca: 'Fiat', modelo: 'Palio'   } } recuperarCarro().marca; Uma função pode retornar outra função Permite a execução de uma função

JS - Estruturas de repetição - for

A exemplo do que já foi visto com o "while", o "for" nos permite repetir a execução de instruções dado uma lógica, a diferença é que com o "for" podemos definir todo lógica dessa repetição já dentro do comando, onde devemos informar o contador inicial, sua condição de saída e uma instrução que nos diga como o contador trabalha-rá, seja incrementando ou decrementando. Sintaxe for ( "inicio", "condicao de término", "expressao final" ) Exemplos Vamos construir um "loop" que repete dez vezes: for (var x = 0; x < 10; x++) {     console.log(x); } Podemos também ter mais de uma variável na estrutura, elaborando um pouco mais nosso controle: for (var x = 0, y = 1; x < 10 && x < y; x++, y++) {     console.log('x:' + x + ' y:' + y); }

JS - Um pouco mais sobre Arrays

No Javascript um "array" é na verdade um objeto, que possui suas propriedades e métodos, independente de seu conteúdo, e hoje falaremos de uma propriedade para recuperar o total de itens e de um método para incluir novos elementos. Propriedade length É a propriedade de um "array" que nos indica a quantidade de itens que existem atualmente nesse "array", com essa informação poderíamos, por exemplo, percorrer todos os elementos de um "array" por meio de um "loop": var arr = [ 10, 20, 30, 40, 50, 'Teste', true]; var pos = 0; while (pos < arr.length) {    console.log(arr[pos]);    pos++; } Método push Método usado para incluir elementos no final de um "array", sendo esses elementos números, textos, objetos, outros arrays ou até mesmo funções: arr.push(999); arr.push('Novo teste'); arr.push( { pessoa: 'Teresa'} ); arr.push( function primo(x) { return x % 2 === 0; }

JS - Operador módulo

Retorna o resto da divisão entre dois inteiros (matemática básica), enquanto o operador de divisão "/" nos retorna o resultado da divisão o operador de módulo "%" nos retorna o resto da divisão. 2 / 2; (resultado um) 2 % 2; (resto zero) 3 / 2; (resultado um e meio) 3 % 2; (resto um) Identificando números pares e impares O operador módulo "%" é muito usado para identificar se um número é impar ou par, pois, números pares quando divididos por dois não possuem resto, no exemplo abaixo iremos mostrar todos os números pares que estão entre zero e dez: var num = 0; while (num <= 10) {     (num % 2 === 0) ? console.log(num) : console.log('');      num++; }

JS - Estruturas de repetição - while

Estruturas de repetição (loop) repetem a execução de determinadas instruções enquanto a condição de parada não for atendida. É muito importante ter isso em mente, pois, uma estrutura de repetição com uma lógica errada pode levar o browser ao travamento, caso a condição de saída nunca seja atendida. Sintaxe Aqui temos a palavra reservada "while" seguida da condição de parada: while( "condição parada" ) {      "instruções a serem executadas enquanto condição de parada não for atendida"  } Exemplo Vamos exemplificar com a seguinte lógica, será criada uma variável e enquanto essa variável for menor que o valor dez deverão ser executadas o "print" do valor dessa varável e ela deve ser incrementada: var count = 0; while( count < 10 ) {     console.log(count);     count++; } Exemplo usando o conceito "truthy/falsy" Sabemos que o valor zero (0) é "falsy", logo caso seja necessário criar