Таким образом, массив в javascript назначается ссылками, например,
let a = [1,2,3]; let b = a; a = []; console.log(b);
Не должен ли он печатать пустой массив, поскольку a назначается пустому массиву, а b и a указывают на то же самое.
Я знаю, что такое поведение может показаться странным. Однако, как уже упоминали другие авторы, происходит то, что, записывая «a = []», вы фактически назначаете «a» новую ссылку (т.е. вы больше не манипулируете «старым» массивом), и «b» будет удерживать старая ссылка на область памяти, где изначально был назначен «старый» массив и разрыв связь с «а». Следовательно, теперь будет существовать 2 ссылки вместо начальной 1.