Tofauti kati ya aina za pseudoaarrays katika JavaScript

Tofauti kati ya aina mbili za pseudoaarrays iko katika tabia tofauti wakati wa kubadilisha vipengele vya DOM. Hebu, kwa mfano, tumepata mkusanyiko wa aya katika mfumo wa HTMLCollection na katika mfumo wa NodeList. Kisha tutaunda na kuongeza aya nyingine kwenye DOM yetu. Katika kesi hii, kiotomatiki itaonekana kwenye HTMLCollection, lakini mkusanyiko wa NodeList utabaki bila mabadiliko.

Wacha tuangalie kwa mfano. Hebu tuwe na div, na ndani yake kuna aya. Tutaipata div yetu na aya sawa katika mkusanyiko wa aina mbili tofauti:

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

Wacha tuongeze aya nyingine kwenye div yetu:

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

Matokeo yake, moja ya mikusanyiko itabadilika, na ya pili - haitabadilika:

javascriptconsole.log(elems1); // Aya 4 - na mpya
console.log(elems2); // Aya 3 za kwanza
Задание 1

Angalia jinsi sifa children itakavyokuwa wakati wa kuongeza kipengele kipya.

Задание 2

Angalia jinsi sifa childNodes itakavyokuwa wakati wa kuongeza kipengele kipya.