Conceitos de JavaScript: rindo durante fechamentos, programação assíncrona e muito mais
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!





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)