Algumas notas sobre estruturas de dados em Javascript (e algo mais…)
Já faz algum tempo que não escrevo aqui, mas não pensem que eu desisti de me tornar um desenvolvedor!!! Estou estudando bastante desenvolvimento web (principalmente Express.js com Node.js). Logo logo irei postar algumas coisas sobre isso.
O foco nesse post será sobre algumas anotações que fiz estudando o grande livro Eloquent Javascript. Pra quem ainda não conhece: é um livro muito, muito bom e conhecido. Ele é gratuito na versão online e tem, inclusive, tradução para português.
Pretendo manter uma regularidade maior nas postagens, principalmente com as férias se aproximando. Mas vamos ao que interessa.
Variáveis e propriedades em Javascript
Quase todos os valores em Javascript possuem propriedades. As exceções são null e undefined. Se você tentar obter o length de um null, por exemplo:
Para acessar propriedades, os meios mais comuns são usar a notação de ponto (dot) ou de [] (square brackets). Ambos, value.x e value[x], acessam uma propriedade, mas essa propriedade não é necessariamente igual. Mas como assim?
Pra entender isso, precisamos entender inicialmente como esse x é interpretado, ou seja, entender o x da questão (perdão pela piada). Quando você usa notação de ponto, o que vem depois do ponto deve ser uma propriedade válida da variável (objeto). Quando você usa a notação de brackets, primeiro o que está dentro dessa variável é calculado e depois é usado o resultado.
Métodos
Métodos são propriedades de uma variável que contém uma função. Por exemplo: toUpperCase, length, toLowerCase entre muitas outras… Assim, dizemos que length é um método de um array, por exemplo.
Objetos
Objetos são coleções arbitrárias de propriedades as quais podemos adicionar e remover como desejarmos. Um jeito de criar um objeto é usar a notação de chaves (curly-brace).
Um exemplo que ele dá no livro:
Se uma propriedade não tem nome válido, você precisa colocar ela entre aspas.
No código abaixo, como há um espaço em touched tree, devemos colocá-lo entre aspas:
Ler uma propriedade que não existe vai retornar o valor undefined como no exemplo acima.
Podemos redefinir as propriedades usando o operador de atribuição (=).
O autor nos convida a pensar na estrutura de um objeto como um polvo, e em que cada tentáculo do polvo imaginário tem escrito o nome da propriedade e esse tentáculo está segurando o valor a ser retornado por essa propriedade.
Se você quiser deletar uma propriedade de um objeto, pode usar o operador delete. O autor nos alerta que não é algo comum mas que podemos fazer e que não é possível deletar o objeto com esse comando, então cuidado! Não confunda os dois.
O operador in retorna um valor booleano dizendo se o objeto possui aquela propriedade. Por exemplo:
O objeto arguments
Sempre que uma função é chamada, uma variável especial chamada arguments dá as caras. Essa variável é um objeto que possui todos os argumentos que foram passados para a função. Em Javascript é ok passar um número maior ou menor de argumentos do que o número originalmente definido pela função. Contudo, tenha em mente que isso pode reduzir a perfomance do seu código, então preste atenção.
O nosso objeto arguments parece um array no sentido de que você pode acessar os argumentos através dos índices, como arguments[0], arguments[1] etc. Mas, infelizmente, ele não possui outros métodos de array como slice, indexOf etc…
Uma coisa legal que podemos fazer com esse objeto é uma função para somar todos os números que a pessoa passar, como no exemplo que desenvolvi abaixo:
O objeto global
Não estamos falando de nenhum ator da Globo não. O global space é o espaço onde todas as variáveis globais vivem. Ele é bem parecido com um objeto. Cada variável global é representada como uma propriedade desse objeto. No browser, por exemplo, o global space é guardado na variável window.
Algo a mais…
No começo da publicação eu prometo algo a mais. Gostaria de compartilhar com vocês o Node School!
O Node School é uma plataforma onde você pode baixar pequenos tutoriais sobre Javascript em geral e rodá-los no seu computador. Ele possui algumas explicações e desafios para você praticar o que acabou de aprender.
Eu achei show of ball e com certeza vou completar todos! Outra coisa legal é que ele promove workshops, que são grupos de estudos onde podemos utilizar esses pequenos tutoriais para ser nosso guia. E aí, vamos criar alguns workshops aqui em São Paulo? Expandir o conhecimento e fazer amizades nunca é demais!
Continue acompanhando
Espero que você tenha curtido. Qualquer sugestão e/ou críticas, só falar. :)
Continue seguindo o meu trajeto, vou tentar fazer posts novos todas semanas (menos em épocas de prova hahaha). Dá um coraçãozinho e um followzinho pra ficar por dentro das minhas novas aventuras! É nois, galera.
Se você ainda não conhece o Training Center, de uma olhada nesse artigo.
Se curtiu essa dica, da um like aqui no Medium e compartilhe esse post nas redes sociais.