Fala aí, Lucas! Tudo certo, cara? =D
Nem todas as tags necessitam ser abertas e fechadas... Aquelas que tiverem um conteúdo obrigatório a ser passado, precisam, sim, por exemplo:
<p>Um parágrafo qualquer</p>
Repare que para definir um parágrafo, precisamos da tag <p>
e do seu conteúdo... Beleza? =D
E quais seriam essas tags que não possuem conteúdo? A imagem é um exemplo disso:
<img>
Não faz sentido abrir e fechar, o que deveríamos colocar? Como escrever em um editor de texto, não temos como colocar uma imagem lá... Dessa forma, para informarmos qual a imagem, passamos um atributo:
<img src="caminho_para_imagem">
Conseguiu entender até aqui? =D
Sobre JavaScript, qual livro você está utilizando? O conteúdo do livro e do curso acredito que sejam diferentes, mesmo... Ou melhor, pode até ser que sejam iguais, mas a forma de passar o conteúdo seja diferente, sacou? =)
As duas formas que você sugeriu foram:
var x = document.querySelector("seletor");
var x = document.getElementById("id");
Qual a diferença entre cada uma delas?! Quando você chama a função getElementById
, você deve passar o id
de um elemento, que esperamos que seja único, ou seja, ele sempre lhe trará um único elemento...
No caso do querySelector
, você pode passar, por exemplo, uma tag, como <p>
. Repare que esse elemento pode aparecer diversas vezes no nosso documento... Entretanto, o querySelector
irá trazer apenas o primeiro. =|
Conseguiu entender as diferenças? =D
Essa dúvida está marcada no curso de Lógica de Programação. Se você estiver assistindo a esse curso, não fique tão preocupado com essas coisas agora. O foco do curso é ensinar a lógica, mesmo. Esses detalhes da linguagem você verá em cursos mais específicos a frente, como os cursos da Carreira Desenvolvedor Front-End. Ok? =D
Espero ter ajudado e conseguido tirar todas as suas dúvidas, mas qualquer dúvida que você possa ter ainda, não hesite em perguntar aqui, no fórum, para que possamos continuar ajudando-o, belezinha? =D
Abraço e bons estudos,
Fábio