Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Esqueci o "var"

Eu estava explorando os métodos do programa e quando tentei salvar uma variável sem o uso do "var" funcionou. Minha dúvida é: Quais os problemas de não se usar o prefixo "var" antes de declarar uma variável?

5 respostas
solução!

Miguel, acredito que você acabou de cair em um problema clássico do Javascript: variáveis globais.

Isso não é um problema em si, mas eu acredito que a variável que você usou já existia, por isso ela funcionou.

Existem diversos problemas em se usar "var" para a declaração de variáveis em javascript. O primeiro é que você pode declarar mais de uma vez com o var e ele não colide. Vou seja, se você fizer isso aqui^:

var torta = 21;
var torta = 'morango';

// As duas funcionam, mas prevalece o valor morango em vez do 21

Acredito que voce consegue imaginar o perigo de receber uma variável que sobrescreve outra, certo?

O let resolve isso não permitindo que você declare variáveis com nomes iguais e disparando um erro no navegador quando isso acontece.

O que deve ter acontecido com você é o seguinte:

var bolo = 50; // em algum lugar do código, essa variável esta declarada

bolo = 'chocolate' 
// você atribuiu um novo valor a variavel bolo depois

Veja bem, quando a variavel está declara no escopo de trabalho ela fica disponível pra ser chamada sem var e isso é IMPORTANTE:

Mais uma vez: se você usa var para declarar uma variável e depois usar var e declarar uma variável de mesmo nome ele sobrescreve aquela variável, fazendo que você potencialmente tenha mais de uma variável com o mesmo nome declarado levando você a resultados inesperados

A dica de ouro aqui é: em vez de "var" troque todas as variáveis do seu arquivo pra "let" e tente declarar duas vezes a mesma variável com let

let bolo = 'abacaxi' 
let bolo = 'chocolate' // dispara um erro

bolo = 'morango' // muda o valor de abacaxi para morango

/// com var

var bolo = 'abacaxi';
var bolo = 'morango'; // muda para morango
var bolo = 'cereja' // muda para cereja

Abre isso no console do seu navegador. Eu sei que parece bem confuso, mas quando você tem um código bem grande, criar variáveis com o mesmo nome é super comum e perigoso

Se eu não fui claro, pergunta aqui de novo e eu tento reformular a resposta

enão na verdade a unica coisa que eu tinha colocado foi algo do tipo

a = 3;
b = 4;
x = a + b;
document.write(x);

foi tipo isso sem usar o var na frente de nada e nem mesmo ter declarado antes, eu estava testando e dai fiquei curioso se poderia acarretar algum problema ou como que essas variáveis estariam sendo alocadas no sistema.

Então, miguel, variáveis em escopo global são a melhor receita de problemas que você vai encontrar em programação.

Elas sempre devem ser declaradas com cuidado

Basicamente, foi mais ou menos isso que aconteceu, pois uma variável declarada com var pode ser declarada várias vezes e seu valor será sobrescrito ou chamada com apenas seu nome para dar a ela um novo valor

Como te deixei o conselho: use let em vez de var

http://matera.com/br/2017/05/09/javascript-6-diferenca-entre-var-let-e-const/

Acho que essa matéria vai ser mais esclarecedora pra você :D

Oi Miguel!

Para você que esta começando em lógica, use var assim que a variável for aparecer pela primeira vez em seu código. Não use var quando for alterar uma variável já declarada.

Existem outras formas de declarar variáveis como os colegas sabiamente explicaram, mas sugiro se preocupar isso quando querer se aprofundar em JavaScript. Essa disciplina de usar var quando for declarar suas variáveis o preparará para outras linguagens ou outros tipos de declarações em JavaScript.

Sucesso e bom estudo e obrigado a todos pelas respostas. Chegaram primeiro do que eu :)

Boa pessoal!!