Вы предполагаете, что:
a = b = document.createElement('div');
совпадает с:
a = document.createElement('div');
b = document.createElement('div');
Это не так.Это скорее так же, как:
b = document.createElement('div');
a = b;
И, следовательно, a
и b
на самом деле одно и то же.Чтобы скопировать вместо ссылки (если вам действительно нужен oneliner):
a = (b = document.createElement('div')).cloneNode(false);
или oneliner для нескольких:
const [a, b, c, d] = Array.from({ length: 4 }, () => document.createElement("div"));