如果使用,有什么区别:
var numbers = [1, 2, 3]
var mainArray = (numbers.length > 1) ? numbers : '';
代替这个:
var numbers = [1, 2, 3]
var mainArray = (numbers.length > 1) ? [...numbers] : '';
最佳答案
由于数据结构的分配指向内存中的同一空间,因此,如果您有两个引用同一数组的变量,则更改一个变量将更改另一个变量。也就是说:
如果x = [1, 2, 3]
和y = x
那么我们说x.push(5)
y
也将具有5,因为它们指向同一实例。如果使用[...x]
,则将创建x的副本。它消耗O(n)内存,这是一个新引用。因此,如果x改变,y将不受影响。
涂抹酱干净利落,但确实有开销。如果用于非常大的数据集,它们将影响性能。
关于javascript - 当我们使用数组名称而不是传播运算符时有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50707456/