JavaScript展开操作符(Spread operator)介绍
2020-12-13 02:52
标签:ldo 规划师 开发 block val class pre 个数 使用 本文介绍JavaScript的展开操作符(Spread operator) 你可以通过展开操作符(Spread operator) 以数组为例,首先创建一个数组, 你可以轻松赋值一个数组: 你还可以轻松拼接两个数组: 也可以如下拼接 如果要把一个数组b的元素全部插入到数组a的后面(不生成新数组),可以这样操作: 如果要把一个数组b的元素全部插入到数组a的前面(不生成新数组),可以这样操作: 可以通过展开运算符把类数组对象变成真正的数组: 展开操作符同样可以用于对象。可以通过以下方式clone一个对象: 注意: 如果属性值是一个对象,那么只会生成一个指向该对象的引用,而不会深度拷贝。也就是说,展开运算符不会递归地深度拷贝所有属性。并且,只有可枚举属性会被拷贝,原型链不会被拷贝。 还可以用于merge两个对象。 当然也可以适用于以下的情况: 如果merge的多个对象有相同属性,则后面的对象的会覆盖前面对象的属性,比如 const obj1 = {a:111,b:222} const obj1 = {a:111,b:222}
...
。本文适合ES6初学者。...
扩展一个数组对象和字符串。展开运算符(spread)是三个点(…),可以将可迭代对象转为用逗号分隔的参数序列。如同rest参数的逆运算。用于数组
const a = [1, 2, 3],
b = [4,5,6];const c = [...a] // [1,2,3]
const d = [...a,...b] // [1,2,3,4,5,6]
const d = [...a,4, 5, 6] // [1,2,3,4,5,6]
const a = [1,2,3];
a.push(...b);const a = [1,2,3];
a. unshift(...b);类数组对象变成数组
var list=document.getElementsByTagName(‘a‘);
var arr=[..list];用于对象
const newObj = { ...oldObj }
const obj1 = { a: 111, b: 222 };
const obj2 = { c: 333, d: 444 };
const merged = { ...obj1, ...obj2 };
console.log(merged); // -> { a: 111, b: 222, c: 333, d: 444 }const others = {third: 3, fourth: 4, fifth: 5}
const items = { first:1, second:1, ...others }
items //{ first: 1, second: 2, third: 3, fourth: 4, fifth: 5 }const obj1 = { a: 111, b: 222 };
const obj2 = { b: 333, d: 444 };
const merged = { ...obj1, ...obj2 };
console.log(merged); // -> { a: 111, b: 333, d: 444 }
const merged = {a:222,...obj1};
console.log(merged); // -> { a: 111, b: 333 }
const merged = {...obj1,a:222};
console.log(merged); // -> { a: 222, b: 333 }
文章标题:JavaScript展开操作符(Spread operator)介绍
文章链接:http://soscw.com/essay/26500.html