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?
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?
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!!