当前位置: 首页 > 教程 > ECMAScript/ES6 >

ECMAScript/ES6散布运算符

精华
小牛编辑
163浏览
2023-03-14

ES6引入了一个称为散布运算符的新运算符,它由三个点(...)组成。 它允许迭代器在期望参数超过零的地方扩展。 它赋予从数组中获取参数的特权。

传播(Spread)运算符的语法与rest参数相似,但是完全相反。 让我们了解一下散布运算符的语法。

语法

var variablename1 = [...value];

上面语法中的三个点(...)是散布运算符,其目标是特定变量中的整个值。

让我们尝试了解散布运算符在不同情况下的用法:

1.散布运算符和数组操作

下面来看看如何使用散布运算符来操纵数组。

1.1.构造数组文字

当使用文字形式构造数组时,散布运算符允许在初始化的数组中插入另一个数组。

示例

let hotFruits = ['香蕉', '芒果'];  
let allFruits = [...hotFruits, '励志', '龙眼', '苹果'];  
console.log(allFruits);

运行上面实例代码,得到以下结果:

D:\es6>node speed.js
[ '香蕉', '芒果', '励志', '龙眼', '苹果' ]

1.2.串联数组

散布运算符还可用于连接两个或多个数组。

let hotFruits = ['香蕉', '芒果'];  
let allFruits = [...hotFruits, '励志', '龙眼', '苹果'];  
console.log(allFruits);

运行上面实例代码,得到以下结果:

D:\es6>node speed.js
[ '香蕉', '芒果', '励志', '龙眼', '苹果' ]

1.3.复制数组

还可以使用散布运算符复制数组的实例。

示例

let colors = ['Red', 'Yellow'];  
let newColors = [...colors];  
console.log(newColors);

如果在不使用散布运算符的情况下复制数组元素,则在复制的数组中插入新元素将影响原始数组。但是,如果使用散布运算符复制数组,则在复制的数组中插入元素不会影响原始数组。

示例

不使用散布运算符

let colors = ['Red', 'Yellow'];  
let newColors = colors;  
newColors.push('Green');  
console.log(newColors);  
console.log(colors);

运行上面示例代码,结果如下:

[ 'Red', 'Yellow', 'Green' ]
[ 'Red', 'Yellow', 'Green' ]

使用散布运算符

let colors = ['Red', 'Yellow'];  
let newColors = [...colors];  
newColors.push('Green');  
console.log(newColors);  
console.log(colors);

运行上面示例代码,结果如下:

[ 'Red', 'Yellow', 'Green' ]
[ 'Red', 'Yellow' ]

注:散布运算符只需复制阵列本身到新的一个。 这意味着操作符可以执行浅拷贝而不是深拷贝。

2.散布运算符和字符串

让我们看看散布操作符如何传播字符串。

示例

在这里,从单个字符串构造了一个数组str

let str = ['A', ...'EIO', 'U'];  
console.log(str);

在上面的示例中,我们将散布运算符应用于字符串:EIO。 它将EIO字符串的每个特定字符散布成单个字符。执行以上代码后,获得以下输出结果:

[ 'A', 'E', 'I', 'O', 'U' ]