Atšķirība starp pseido masīvu tipiem JavaScript

Atšķirība starp diviem pseido masīvu tipiem ir atšķirīgā uzvedībā, mainot DOM elementus. Pieņemsim, ka mēs esam saņēmuši kolekciju rindkopu kā HTMLCollection un kā NodeList. Tad mēs izveidosim un pievienosim vēl vienu rindkopu mūsu DOM. Šajā gadījumā tas automātiski parādīsies HTMLCollection, bet kolekcija NodeList paliks nemainīga.

Apskatīsim piemērā. Pieņemsim, ka mums ir div, un tajā atrodas rindkopas. Iegūsim mūsu div un vienas un tās pašas rindkopas kā kolekcijas divos dažādos tipos:

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

Pievienosim vēl vienu rindkopu mūsu div:

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

Rezultātā viena no kolekcijām mainīsies, bet otrā - nē:

javascriptconsole.log(elems1); // 4 rindkopas - ar jauno
console.log(elems2); // 3 sākotnējās rindkopas
Задание 1

Pārbaudiet, kā uzvedīsies īpašība children pievienojot jaunu elementu.

Задание 2

Pārbaudiet, kā uzvedīsies īpašība childNodes pievienojot jaunu elementu.