Differenza tra i tipi di pseudo-array in JavaScript

La differenza tra i due tipi di pseudo-array risiede nel diverso comportamento quando gli elementi DOM vengono modificati. Supponiamo, ad esempio, di aver ottenuto una collezione di paragrafi sia come HTMLCollection che come NodeList. Successivamente, creiamo e aggiungiamo un altro paragrafo nel nostro DOM. In questo caso, apparirà automaticamente nella HTMLCollection, ma la collezione NodeList rimarrà invariata.

Vediamo un esempio. Supponiamo di avere un div, e al suo interno dei paragrafi. Prendiamo il nostro div e gli stessi paragrafi sotto forma di collezioni di due tipi diversi:

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

Aggiungiamo un altro paragrafo al nostro div:

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

Di conseguenza, una delle collezioni cambierà, mentre la seconda no:

javascriptconsole.log(elems1); // 4 paragrafi - con il nuovo
console.log(elems2); // 3 paragrafi iniziali
Задание 1

Verifica come si comporterà la proprietà children quando aggiungi un nuovo elemento.

Задание 2

Verifica come si comporterà la proprietà childNodes quando aggiungi un nuovo elemento.