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' ]