本篇文章给大家带来的内容是关于es6中展开符号的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
概述
展开符号真的是一个非常好用的东西,我常用于字符串分割、数组合并、数组拷贝、对象合并、对象拷贝。
0x001 语法
...iterableObj
0x002 函数调用的时候参数展开
这是在函数调用的时候,将参数展开,和剩余参数有区别,剩余参数是在函数声明中使用
myFunction(...iterableObj);
案例
function add(a, b){
return a + b
}
add(...[1,2]) // 相当于 add(1,2) -> 3数组声明展开
可用于数组合并
[...[1,2,3],4] // 相当于[1,2,3].push(4) -> [1,2,3,4]
[...'1234'] // 相当于 '1234'.split("")对象展开
可用于对象合并、对象拷贝
{...{name:1},age:2} // 相当于 Objeact.assign({},{name:1},{age:2}) -> {name:1,age:2}
{...{name:1}} // 相当于 Object.assign({},{name:1}) -> {name:1}babel 翻译
字符串/数组展开
睿拓智能网站系统-网上商城1.0免费版软件大小:5M运行环境:asp+access本版本是永州睿拓信息专为电子商务入门级用户开发的网上电子商城系统,拥有产品发布,新闻发布,在线下单等全部功能,并且正式商用用户可在线提供多个模板更换,可实现一般网店交易所有功能,是中小企业和个人开展个人独立电子商务商城最佳的选择,以下为详细功能介绍:1.最新产品-提供最新产品发布管理修改,和最新产品订单查看2.推荐产
源码
[...'1234']
翻译后
function _toConsumableArray(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
arr2[i] = arr[i];
}
return arr2;
} else {
return Array.from(arr);
}
}
[].concat(_toConsumableArray('1234'));对象展开
源码
let a={...{name:1}}翻译后
var _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key))
{ target[key] = source[key];
}
}
}
return target;
};
var a = _extends({ name: 1 });









