1
resposta

[Dúvida] Nao declarar valorDoElemento

Olá! eu notei que no codigo da aula a variavel' valorDoElemento' nao foi declarada em canto nenhum mas mesmo assim funciona, nao era pra dar algum erro? deletarObjetos.forEach(i => { i.addEventListener('click', (evento) => { valorDoElemento = evento.target.parentElement.parentElement.getAttribute('data-value') listaDeItens.splice(valorDoElemento,1) mostrarItem() }) })

1 resposta

Olá, Laurie!

O que está acontecendo:

O trecho:

valorDoElemento = evento.target.parentElement.parentElement.getAttribute('data-value')

usa a variável valorDoElemento sem declará-la previamente com let, const ou var. Em JavaScript, isso não dá erro imediatamente, mas tem um comportamento importante:

Quando você usa uma variável sem declará-la, o JavaScript automaticamente cria uma variável global.

Ou seja, nesse caso, o JavaScript está implicitamente fazendo algo como:

window.valorDoElemento = ...

E isso só funciona em modo não estrito (ou seja, se o arquivo JavaScript não estiver usando "use strict" no topo).