aguarde...

15 de março de 2020

Variáveis ​​JavaScript: var, let e const

Variáveis ​​JavaScript: var, let e const

tldr;

Existem três maneiras de criar variáveis ​​em um aplicativo JavaScript: usando var, usando letou usando const. Não será uma postagem tentando convencê-lo de qual você deve usar ou discutindo o que é melhor. É bom saber sobre as diferenças e o que isso significa quando você usa as diferentes opções. Mas, esperançosamente, no final de tudo isso, você estará confortável com as três opções e poderá tomar uma decisão para sua equipe que atenda às suas necessidades. Para tirar o máximo proveito desta postagem, é melhor se você entender o escopo variável, que abordamos nesta postagem anteriormente.

Variáveis ​​usando var

Quando você declara uma variável com var, a variável terá escopo de função. Se você tentar usar a variável antes de ser declarada nessa função, ela terá um undefinedvalor devido à elevação. Estes podem ser os efeitos desejados para o seu aplicativo, mas minha recomendação é não usar varpara declarações de variáveis.

Variáveis ​​usando let

Quando você declara uma variável com let, a variável terá escopo definido no bloco. Se você tentar usar a variável antes que ela seja declarada nesse bloco ou fora desse bloco, a ReferenceErrorserá lançada. Isso é bom porque as ocasiões em que deve ser raro você usar uma variável antes de declará-la. Essas variáveis ​​também são redesignáveis. Vejamos um exemplo:

function playGame() {
	let gameName = 'Super Mario Brothers';

	gameName = 'Mario Kart 8';

	console.log(gameName); // Mario Kart 8
}

playGame();

No exemplo acima, declaramos a gameNamevariável e inicializamos seu valor como Super Mario Brothers. Mas logo abaixo, atribuímos novamente o valor a uma string diferente Mario Kart 8,. Isso é completamente válido para variáveis ​​declaradas com let. Minha recomendação é usar letsempre que você precisar reatribuir o valor de uma variável. Exemplos de quando você pode precisar fazer isso seriam quando em um forloop, por exemplo.

Variáveis ​​usando const

Quando você declara uma variável com const, a variável terá escopo definido no bloco. Se você tentar usar a variável antes que ela seja declarada nesse bloco ou fora desse bloco, a ReferenceErrorserá lançada. Isso é bom porque as ocasiões em que deve ser raro você usar uma variável antes de declará-la. A diferença entre constlet, no entanto, é que variáveis ​​declaradas com constnão podem ter seus valores reatribuídos. Portanto, nosso exemplo acima produziria a TypeErrorpara tentar atribuir um valor a uma variável constante. Vejamos um exemplo de como você pode alterar partes de uma constvariável:

const game = {
	title: 'Zelda: Breath of the Wild',
};

game.title = `Zelda: Link's Awakening`;

console.log(game.title); // Zelda: Link's Awakening

Mesmo que tenha gamesido declarado usando const, ainda podemos alterar o valor de um atributo no objeto. O mesmo acontece com matrizes. Você pode pushem uma matriz declarada com const. O que você não pode fazer é o seguinte:

const game = {
	title: 'Zelda: Breath of the Wild',
};

game = {
	title: `Zelda: Link's Awakening`,
}; // TypeError: Assignment to constant variable

No segundo exemplo, o erro ocorre porque estamos alterando o valor da gamevariável em si, não apenas um dos valores de seus atributos.

Conclusão

Então, qual das três opções você deve usar? Bem, vou deixar você e sua equipe decidirem. Pessoalmente, gosto de usar consto tempo todo, a menos que eu saiba que precisarei reatribuir o valor de uma variável. Nesses casos, eu uso let. Acho que ajuda o seu futuro pessoal e outros desenvolvedores a saberem que você não pretendia alterar esse valor, e o aplicativo produzirá um erro se você tentar alterá-lo. Mas se você preferir usar let, faça o que for melhor para você e sua equipe.

Posted in Blog
Write a comment