Em projetos voltados para a web, quase sempre temos que lidar com JavaScript, porém muitas vezes acabamos utilizando-o apenas superficialmente, não indo muito a fundo na linguagem.
Faz algum tempo que tenho trabalhado praticamente apenas com JavaScript e nesse tempo aprendi vários recursos interessantes que podem facilitar bastante a vida quando houver a necessidade da utilização da linguagem.
Irei listar abaixo, dando uma breve explicação de cada recurso e sua utilização, mostrando ao menos um exemplo.
Declaração de variáveis
Podemos declarar variáveis de duas formas em javascript, utilizando a palavra chave var ou não. Quando utilizamos o modificador var estamos dizendo que a variável é acessível apenas no contexto em que ela foi declarada, a não utilização a torna uma variável global.
Vejam os exemplos:
(function() {
var a = “abc”;
})();
console.info(a);
Saída:
ReferenceError: a is not defined
(function() {
a = “abc”;
})();
console.info(a);
Saída:
abc
Obs.: Nos dois exemplos foram criadas uma função anônima e declarada uma variável a, que depois da execução da função, foi acessada pelo console.info. Como no primeiro exemplo foi utilizado o modificador var na declaração, não foi possível o acesso ao seu valor uma vez que, ao utilizar este modificador, define-se o escopo da variável como local. Já no segundo exemplo foi possível o acesso ao conteúdo da variável uma vez que o modificador não foi utilizado, deixando a variável como escopo global.
Criação de objetos
Existem várias maneiras de criarmos objetos em javascript
Usando new Object()
var a = new Object();
a.b = “bbbb”;
a.c = “cccc”;
console.info(a);
Utilizando {}
var a = {b: “bbbb”, c: “cccc”}
console.info(a);
Criando uma função que define o objeto
function a(b, c) {
this.b = b;
this.c = c;
}
var a = new a(“bbbb”, “ccccc”);
console.info(a);
Criação de arrays
Usando new Array()
var a = new Array();
a[0] = “bbbb”;
a[1] = “cccc”;
console.info(a);
Usando new Array(args)
var a = new Array(“bbbb”, “cccc”);
console.info(a);
Usando []
var a = ["bbbb", "cccc"];
console.info(a);
Foreach
Em javascript podemos usar o foreach para iterar tanto Arrays quanto Objetos e ao contrário de algumas linguagens a variável interna do for não tem o próprio valor e sim o indíce daquele valor na array ou objeto, vejamos o exemplo abaixo.
Array
var array = ["a", "b", "c"];
for (var i in array) {
console.info(“i: “, i,” value: “, array[i])
}
Saída:
-> i: 0 value: a
-> i: 1 value: b
-> i: 2 value: c
Objetos
var obj = {a: “aa”, b: “bb”, c: “cc”};
for (var i in obj) {
console.info(“i: “, i,” value: “, obj[i])
}
Saída:
-> i: a value: aa
-> i: b value: bb
-> i: c value: cc
Obs.: Observem que no exemplo utilizando um objeto, seus atributos foram acessados como se fossem uma array, ou seja, poderíamos acessar o valor do atributo a da seguinte forma: obj[“a”].
Null vs undefined
As variáveis em javascript podem ter dois estados além dos estados de preenchidos: null e undefined, podemos diferenciar esses dois estados com a seguinte frase: “Null a variável/atributo existe, mas não tem nada, undefined a variável não foi declarada ou não existe no objeto”, vejamos os exemplos abaixo:
Undefined
var a = {};
console.info(a.b);
console.info(c);
Null
var a = {b: null};
console.info(a.b);
Palavra chave delete
As vezes queremos tirar um atributo de algum objeto, e atribuir null nele pode não ser suficiente! Nestes casos podemos utilizar a palavras chave delete, ela literalmente deleta o atributo do objeto e o remove da sua estrutura.
Exemplo:
var a = {b: “bbbb”};
console.info(a.b);
delete a.b;
console.info(a.b);
Saída:
-> bbbb
-> undefined
Comparações
Em javascript podemos utilizar qualquer tipo de valor em uma comparação, não apenas valores booleanos como em algumas linguagens, só precisamos nos atentar a que valores são considerados verdadeiros ou não.
Valores falso
-> Número 0
-> String “” (vazia)
-> Boolean false
-> Variáveis undefined
-> Variáveis null
Valores verdadeiros
-> Tudo que não seja algo da lista acima!
Atribuições de comparações
Devido ao recurso de comparações de “qualquer coisa” podemos atribuir o resultado de uma comparação a uma variável.
Por exemplo:
var o = {c: “asdasdsa”};
var d = o.a || o.b || o.c;
console.info(d);
Obs.: Notem que as variáveis a e b usadas nas comparações não foram declaradas, sendo assim elas estão undefined e consequente são valores falsos, como a comparação são vários ORs, a variável d irá receber o primeiro valor que seja verdadeiro, como no exemplo apenas c tem um valor válido, seu valor será atribuído para d.
Operadores lógicos e estrito
Conforme dito acima, se o número 0 e a string vazia são falsos então numa comparação 0 == “” o retorno será true. Isso ocorre pois estamos utilizando uma comparação lógica, se quisermos saber se os seus tipos também são iguais (strict) podemos utilizar o operador estrito ===. O mesmo ocorre para != e !==.
Exemplo
0 == “”
true
0 === “”
false
0 == “0”
true
0 === “0”
false
Bom, esses são apenas alguns dos recursos interessantes que podemos encontrar em javascript, espero que tenham ficado claro os exemplos. Fico aberto a sugestões e duvidas =).
[]s
Por Erick Zanardo
RSS dos comentários deste post · TrackBack URI
Comente