Différence entre les types de pseudo-tableaux en JavaScript

La différence entre les deux types de pseudo-tableaux réside dans leur comportement différent lors de la modification des éléments DOM. Supposons, par exemple, que nous ayons obtenu une collection de paragraphes sous forme de HTMLCollection et sous forme de NodeList. Ensuite, nous créons et ajoutons un autre paragraphe dans notre DOM. Dans ce cas, il apparaîtra automatiquement dans la HTMLCollection, mais la collection NodeList restera inchangée.

Regardons un exemple. Disons que nous avons une div, et dedans des paragraphes. Récupérons notre div et les mêmes paragraphes sous forme de collections de deux types différents :

javascriptlet parent = document.querySelector('div');
let elems1 = document.getElementsByTagName('p'); // HTMLCollection
let elems2 = document.querySelectorAll('p');     // NodeList

Ajoutons un autre paragraphe dans notre div :

javascriptlet p = document.createElement('p');
parent.append(p);

En conséquence, une des collections changera, et la seconde - non :

javascriptconsole.log(elems1); // 4 paragraphes - avec le nouveau
console.log(elems2); // 3 paragraphes initiaux
Задание 1

Vérifiez comment se comportera la propriété children lors de l'ajout d'un nouvel élément.

Задание 2

Vérifiez comment se comportera la propriété childNodes lors de l'ajout d'un nouvel élément.