ES6引入了一个称为散布运算符的新运算符,它由三个点(...
)组成。 它允许迭代器在期望参数超过零的地方扩展。 它赋予从数组中获取参数的特权。
传播(Spread
)运算符的语法与rest
参数相似,但是完全相反。 让我们了解一下散布运算符的语法。
语法
var variablename1 = [...value];
上面语法中的三个点(...
)是散布运算符,其目标是特定变量中的整个值。
让我们尝试了解散布运算符在不同情况下的用法:
下面来看看如何使用散布运算符来操纵数组。
当使用文字形式构造数组时,散布运算符允许在初始化的数组中插入另一个数组。
示例
let hotFruits = ['香蕉', '芒果']; let allFruits = [...hotFruits, '励志', '龙眼', '苹果']; console.log(allFruits);
运行上面实例代码,得到以下结果:
D:\es6>node speed.js [ '香蕉', '芒果', '励志', '龙眼', '苹果' ]
散布运算符还可用于连接两个或多个数组。
let hotFruits = ['香蕉', '芒果']; let allFruits = [...hotFruits, '励志', '龙眼', '苹果']; console.log(allFruits);
运行上面实例代码,得到以下结果:
D:\es6>node speed.js [ '香蕉', '芒果', '励志', '龙眼', '苹果' ]
还可以使用散布运算符复制数组的实例。
示例
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' ]
注:散布运算符只需复制阵列本身到新的一个。 这意味着操作符可以执行浅拷贝而不是深拷贝。
让我们看看散布操作符如何传播字符串。
示例
在这里,从单个字符串构造了一个数组str
。
let str = ['A', ...'EIO', 'U']; console.log(str);
在上面的示例中,我们将散布运算符应用于字符串:EIO
。 它将EIO
字符串的每个特定字符散布成单个字符。执行以上代码后,获得以下输出结果:
[ 'A', 'E', 'I', 'O', 'U' ]