美文网首页
扩展运算符的应用

扩展运算符的应用

作者: 天外来人 | 来源:发表于2017-01-22 19:15 被阅读23次

  • 合并数组
//ES5
var arr1 = ['a','b'];
var arr2 = [''c];
var arr3 = ['d','e'];
//ES5的合并数组
arr1.concat(arr2, arr3);
//ES6的合并数组
[...arr1, ...arr2, ...arr3]
  • 与结构赋值结合
//ES5
a = list[0], rest = list.slice(1)
//ES6
[a, ...rest] = list;
const [first, ...rest] = [1,2,3,4,5];
first // 1
rest //[2,3,4,5]
const [first, ...rest] = [];
first //undefined
rest //[]
  • 字符串
    扩展运算符还可以将字符串转为真正的数组。
[...'hello']
//['h','e','l','l','o']
  • 实现了Iterator 接口的对象
    任何Iterator 接口的对象,都可以用扩展运算符转为真正的数组。
var nodelist = document.querySelectorAll('div');
var array = [...nodeList];

上面代码中,querySelectorAll方法返回的是一个nodeList对象。它不是数组,而是一个类似数组的对象。这时,扩展运算符可以将其转为真正的数组。原因就在于NodeList对象实现了Iterator接口。
对于那些没有部署Iterator接口的类似数组的对象,扩展运算符就无法将其转为真正的数组。

let arrayLike = {
  '0': 'a',
  '1': 'b'
};
// TypeError: Cannot spread non-iterable object
let arr = [...arrayLike];

上面代码,arrayLike是一个类似数组的对象,但是没有部署Iterator接口,扩展运算符就会报错。这时,可以改为使用Array.from方法将arrayLike转为真正的数组。

相关文章

  • es6新增的数组方法

    扩展运算符 1.扩展运算符的使用方法 2.扩展运算符的应用(1)复制数组 (2)合并数组 (3)与解构赋值结合 (...

  • ES6之扩展运算符与应用(对象篇)

    对象的扩展运算符 《ES6之扩展运算符与应用(数组篇)》一文中,已经介绍过了扩展运算符(...). ES2017将...

  • 扩展运算符

    一直对扩展运算符的使用云里雾里,趁着空闲,是时候拨开云雾见光明了~ 数组的扩展运算符 应用 复制数组,注:数组元素...

  • [转载]扩展运算符...

    原文:JavaScript 扩展运算符 扩展运算符格式 扩展运算符格式很简单,就是三个点(...) 扩展运算符作用...

  • ES6-拓展运算符

    1. 扩展运算符(spread) ... 有序集合 2. ... 的应用: 应用1: 可以当做 可变参数数组 a...

  • es6之扩展运算符 三个点(...)

    es6之扩展运算符 三个点(...)对象的扩展运算符数组的扩展运算符总结es6之扩展运算符 三个点(…)对象的扩展...

  • 扩展运算符的应用

    合并数组 与结构赋值结合 字符串扩展运算符还可以将字符串转为真正的数组。 实现了Iterator 接口的对象任何I...

  • 内置对象扩展(Array)

    Array 的扩展方法 扩展运算符(展开语法) 扩展运算符可以将数组或者对象转为用逗号分隔的参数序列 扩展运算符可...

  • ES6学习笔记(五):轻松了解ES6的内置扩展对象

    Array的扩展方法 扩展运算符(展开语法) 扩展运算符可以将数组或者对象转换为用逗号分隔的参数序列 扩展运算符可...

  • 数组的扩展

    扩展运算符(...) 基本用法 该运算符作用正好与rest参数作用相反,用于展开数组为参数序列,用逗号分割。 应用...

网友评论

      本文标题:扩展运算符的应用

      本文链接:https://www.haomeiwen.com/subject/flyobttx.html