Возвращаемый NodeList является итеративным (в современных средах), поэтому эффект
[...document.querySelectorAll("div")]
такой же, как и при распространении из простого массива.Он фактически делает то же самое, что и
Array.from(document.querySelectorAll("div"))
Так что да, создается новый массив, затем элементы запроса итеративно копируются в новый массив.Не нужно создавать промежуточный массив из NodeList, потому что он уже повторяется.В итоге получается простой массив.
( Любой инициализатор массива с синтаксисом распространения создает новый массив, как любое традиционное использование инициализаторов массива; в этом вся суть.)
Обратите внимание, что ...
, строго говоря, не является оператором ;это не часть синтаксиса выражения.(Ну, это так, потому что вы можете считать синтаксис инициализатора массива и инициализатора объекта частью общего синтаксиса выражения, но он по-прежнему не является оператором.) Однако неуместно не иметь возможности называть его оператором, поэтому яЯ лично сочувствую.