Skirtumas tarp pseudo masyvo tipų JavaScript

Skirtumas tarp dviejų pseudo masyvo tipų yra skirtingame elgesyje keičiant DOM elementus. Tarkime, pavyzdžiui, gavome pastraipų kolekciją kaip HTMLCollection ir kaip NodeList. Tada sukursime ir pridėsime dar vieną pastraipą į mūsų DOM. Šiuo atveju ji automatiškai pasirodys HTMLCollection, bet kolekcija NodeList liks nepakitusi.

Pažiūrėkime į pavyzdį. Turėkime div, o jame - pastraipas. Gaukime mūsų div ir tas pačias pastraipas kaip skirtingų tipų kolekcijas:

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

Pridėkime dar vieną pastraipą į mūsų div:

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

Rezultate viena kolekcija pasikeis, o antroji - ne:

javascriptconsole.log(elems1); // 4 pastraipos - su nauja
console.log(elems2); // 3 pradinės pastraipos
Задание 1

Patikrinkite, kaip elgsis savybė children pridėjus naują elementą.

Задание 2

Patikrinkite, kaip elgsis savybė childNodes pridėjus naują elementą.