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

Não deveria dar conflito no var totalDeGastos dentro do while ?

Olá, não deveria dar conflito ao tentar criar o totalDeGastos na segunda iteração? Tipo, var é uma variavel global, se eu crio ela dentro do while, eu posso utilizar ela fora por declarar como var, certo ? Então se eu crio ela uma vez dentro do escopo do while, na segunda vez, o certo nao seria apontar um erro de variável já existente ?

4 respostas

Olá Santi, o var não é uma variável global. O var é um tipo genérico que é atribuído numa variável, ou seja, quando você diz que uma variável é do tipo var, ela pode receber string ou int ou dooble e assim vai. Quando declaramos a variável dentro de um escopo (um for, foreach, while, if ou uma função) ela só exite ali dentro e portando só pode ser utilizada ali dentro.

Toda vez que um While roda ele recria todas as variáveis que estão dentro dele. Então quando vc declara uma variável dentro dele quando ele chegar no final ele destrói ela, e quando começa ele a cria novamente.

De acordo com sua resposta, qual a diferença entre var e let ?

solução!

Quando você declara uma variável com a palavra var, ela pode corresponder ao escopo global e local, já quando você faz isso com a palavra let, ela pode corresponder ao escopo global, local e de bloco.

o acesso da sua variável vai depender de onde vc declara ela.

Global: Quando você declara uma variável fora de qualquer função, seja ela var ou let, ela tem o escopo global, pois qualquer função no script consegue utilizar esta variável.

Local: Uma variável é local quando ela é declarada dentro de alguma função, pois isso significa que apenas aquela função consegue enxergá-la.

Bloco: é tudo aquilo em um código que está entre chaves ({ }), ou seja, estruturas condicionais, estruturas de repetição, entre outras entidades que trabalham com blocos.

da uma olhada nesse site https://blog.schoolofnet.com/diferenca-entre-var-e-let-no-javascript/

Agora ficou mais claro quanto a minha dúvida, acreditava que independemente do local que eu declaro, VAR sempre seria global. Valeu.