Conceitos de JavaScript: rindo durante fechamentos, programação assíncrona e muito mais

Jan 23 2023
JavaScript é uma linguagem de programação frequentemente descrita como “o oeste selvagem da codificação”. É poderoso, versátil e pode ser muito divertido de se trabalhar, mas também tem seu quinhão de peculiaridades e complexidades.
Foto de Stewart Munro no Unsplash

JavaScript é uma linguagem de programação frequentemente descrita como “o oeste selvagem da codificação”. É poderoso, versátil e pode ser muito divertido de se trabalhar, mas também tem seu quinhão de peculiaridades e complexidades. Nesta postagem de blog, vamos dar uma olhada bem-humorada em alguns dos conceitos mais desafiadores em JavaScript e ver se podemos entendê-los.

Encerramento e Escopo Léxico

Encerramento e escopo lexical são como um velho casal. Eles estão sempre juntos, e você realmente não consegue entender um sem o outro. Um encerramento é uma função que tem acesso às variáveis ​​em seu escopo pai, mesmo após o retorno da função pai. O escopo léxico é como um jogo de esconde-esconde onde as variáveis ​​estão escondidas e o escopo da função está procurando.

let secret = 'I am a closure';
function revealSecret() {
  console.log(secret);
}
revealSecret();

Programação assíncrona

A programação assíncrona é como tentar jogar Tetris enquanto tenta resolver um cubo de Rubik. É desafiador e faz seu cérebro doer. Mas também é essencial para criar páginas da Web responsivas e eficientes.

setTimeout(() => {
  console.log('I am async and I am late to the party!');
}, 2000);

Herança baseada em protótipo

A herança baseada em protótipo é como ter um grupo de pessoas que fingem ser super-heróis. O super-herói original é o protótipo, e os outros estão apenas copiando suas habilidades.

let superman = {
  fly: true,
  xRayVision: true
}
let clarkKent = Object.create(superman);
console.log(clarkKent.xRayVision);

Programação Funcional

A programação funcional é como tentar escrever um poema usando apenas equações matemáticas. É abstrato e pode ser difícil de entender. Mas, depois de entendê-lo, você poderá escrever um código elegante, eficiente e fácil de ler.

const add = (x) => (y) => x + y;
console.log(add(2)(3))

Recursos do ES6

Os recursos do ES6 são como uma nova caixa de giz de cera, com tantas cores novas para brincar, mas você ainda não sabe como usá-las. É empolgante ter todas essas novas ferramentas à sua disposição, mas também pode ser opressor.

const myMap = new Map();
myMap.set('name', 'chatbot');
console.log(myMap.get('name'));

Entendendo a palavra-chave “this”

A palavra-chave “this” em JavaScript é como tentar descobrir o código de vestimenta para uma festa chique. Às vezes é formal, às vezes é casual e às vezes é simplesmente confuso.

const obj = {
  name: 'chatbot',
  speak: function(){
    console.log(this.name);
  }
}
obj.speak();

Entendendo a diferença entre os operadores == e ===

Entender a diferença entre os operadores == e === é como tentar decidir entre sorvete de baunilha e sorvete de chocolate. Ambos são deliciosos, mas um é um pouco mais rigoroso.

console.log(1 == '1')
console.log(1 === '1')

Compreensão e tratamento de erros

Entender os mecanismos de tratamento de erros do JavaScript é como tentar consertar um vaso quebrado. É frustrante, mas necessário para manter as coisas funcionando sem problemas.

try {
  console.log(undefinedVar);
} catch(e) {
  console.log('Oops, something broke', e);
}

Concluindo, JavaScript pode ser uma linguagem difícil de aprender, mas com senso de humor e vontade de experimentar coisas novas, você será capaz de dominar até mesmo os conceitos mais difíceis. Portanto, não tenha medo de experimentar, errar e se divertir! E lembre-se, se você se sentir sobrecarregado, dê um passo para trás, relaxe e tome uma bola de sorvete, seja de baunilha ou chocolate!