4 Segredos do JavaScript


Olá ouvintes do CoderCast, Me chamo Micael Pereira e nesse podcast vou falar sobre os 4 segredos do JavaScript. Vamos ao cast pois falaremos sobre esses segredos!

1 ponto é: Null é um objeto

Bom isto é um bug e esse infelizmente não pode ser resolvido, porque pode ter quebra no código. Vamos ver um pouco de história. O “typeof(null)” é um bug remanescente desde a primeira versão do JavaScript. Nesta versão os valores foram armazenados em 32 bits, que consistia de pequenos tipos de tag de 1 a 3 bits e os dados reais do valor. O erro parece ser muito óbvio, mas não podemos esquecer que a primeira versão foi criada em muito pouco tempo.
Não quero somente falar a parte histórica, preciso falar o que seria o correto quando se faz um “typeof(null)” seria retornar null e não um object.

Diferenças entre null e undefined

typeof(null) retorna um object.
typeof(undefined) retorna undefined
null === undefined retorna falso
null == undefined retorna verdadeiro

2 ponto é: NaN é um number

NaN não é uma keyword como (true, false) é uma propriedade global NaN é um valor especial que significa Not-A-Number em inglês, e em português seria (não é um número). Ele foi implementado na primeira versão do JavaScript.

Não é usual a utilização do NaN. Ele é retornado quando uma operação matemática falha ou quando uma função tenta tranformar uma string em inteiro.

Testando um valor NaN

NaN === NaN é falso
Number.NaN === NaN é falso
isNaN(NaN) é verdadeiro
isNaN(Number.NaN) é verdadeiro

3 ponto é: Um array vazio é igual a falso

Se fizermos um teste e colocarmos um array vazio == [] o retorno será false. Pois infelizmente não há uma boa maneira de comparar objetos no JavaScript a não ser que se use recursividade e vamos acessando todos as propriedades.
E Array é uma instancia de Object em JavaScript.
Então a melhor maneira é testando o length do array.

4 ponto é: Funções podem executar elas mesmas

Uma função é um fragmento de código que pode ser invocado por outro código, por si mesmo ou uma variável que se refere a função.
Para exemplificar essa recursividade vou usar o exemplo de um loop.

function loop(x){
   if(x >= 10)
     return;
   loop(x + 1);
};

A função no JavaScript pode ser também invocada imediatamente após a função ser carregada no compilador. Existe uma sigla para esse tipo de função em inglês que é IIFE.
A maneira de identicar uma IIFE é localizar os parênteses extras a esquerda. Deixarei um exemplo no post.

(function logExecution() {
    console.log("Log for Execution");
}());

O que não é segredo

Todos sabemos que é possível criar apps mobile, usar no front-end e no back-end JavaScript. Tendo essa informação é muito melhor estudar a linguagem, pois tem JavaScript em todos os lugares. E quem está falando isso não é uma empresa. Como aconteceu com o Java. É a comunidade.

Dicas:

Deixarei aqui alguns cursos que ajudarão a quem deseja evoluir com JavaScript.
React Native o link é: link
Vuejs, o framework progressivo: link
E o meu curso de Node com Redis, cache pode salvar sua performance: link

E por ultimo, deixo uma pergunta:

gostaria de saber: O que você acha dessa amável linguagem?
Mande a sua mensagem. No twitter eu sou o  @MicaelPereira_ no Instagram @guiadev_ me siga lá e comente sobre o podcast com seus amigos devs ajudando o crescimento do podcast.Caso queira mandar e-mail para entrar em contato o e-mail é [email protected]

Comentários no Facebook