[ES6] ... spread operator

var parts = [‘shoulders‘, ‘knees‘];
var lyrics = [‘head‘, ...parts, ‘and‘, ‘toes‘]; // ["head", "shoulders", "knees", "and", "toes"]

var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1.push(...arr2); // [0,1,2,3,4,5

function myFunction(v, w, x, y, z) {
  console.log(v, w, x, y, z);
}
var args = [0, 1];
myFunction(-1, ...args, 2, ...[3]);]
//-1, 0 , 1, 2, 3
时间: 2024-10-12 20:46:16

[ES6] ... spread operator的相关文章

[ES6] 13. Using the ES6 spread operator ...

The spread operator (...) allows you to "explode" an array into its individual elements. Spreate an array: console.log([1,2,3]); // [1, 2, 3] console.log(...[1,2,3]); // 1 2 3 Spread out the second array and push that in first array: let first =

ES6 spread operator 实现Function.prototype.apply

之前出于好奇想自己实现apply的功能(不使用call,bind),一写才发现用eval无法实现,除非传入的参数全是字符串. 今天突然看到这个ES6新特性spread opertor,发现有戏了 Function.prototype.apply2 = function(obj, arg) { var t = typeof obj == 'object' && !!obj ? obj : window, res; t.__func__ = this; if(arg) { if(!Array.

《理解 ES6》阅读整理:函数(Functions)(三)Function Constructor & Spread Operator

增强的Function构造函数(Increased Capabilities of the Function Constructor) 在Javascript中Function构造函数可以让你创建一个新函数,不过这个功能并不经常使用.Function构造函数接收函数参数和函数体作为参数,参数都必须是字符串.下面是一个例子: var add = new Function("first", "second", "return first+second"

JavaScript展开操作符(Spread operator)介绍

本文介绍JavaScript的展开操作符(Spread operator)....本文适合ES6初学者. 你可以通过展开操作符(Spread operator)...扩展一个数组对象和字符串.展开运算符(spread)是三个点(-),可以将可迭代对象转为用逗号分隔的参数序列.如同rest参数的逆运算. 用于数组 以数组为例,首先创建一个数组, const a = [1, 2, 3], b = [4,5,6]; 你可以轻松赋值一个数组: const c = [...a] // [1,2,3] 你还

JavaScript ES6 规范

ES6 简介 ECMAScript 6 简称 ES6,是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了.它的目标是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言. ECMAScript 和 JavaScript 的关系:前者是后者的语法规格,后者是前者的一种实现 Babel:将ES6代码转为ES5代码 http://babeljs.io/ image 新特性 let.const let 定义的变量不会被变量提升,const 定义的常量

逆转序列的递归/尾递归(+destructuring assignment)实现(JavaScript + ES6)

这里是用 JavaScript 做的逆转序列(数组/字符串)的递归/尾递归实现.另外还尝鲜用了一下 ES6 的destructuring assignment + spread operator 做了一个更 functional 的版本(只支持数组). 正确性能通过测试(参见 放在我 Github 上的 demo,顺手写了一个小小的测试框架),不过效率就要打问号了——特别是用了 ES6 特性的版本.这里主要是写来玩 JS 的函数式特性的. 1. 逆转序列的递归实现 先用 Haskell 实现做草

学习 ES6,一篇文章就够了

ES6 简介 ECMAScript 6 简称 ES6,是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了.它的目标是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言. ECMAScript 和 JavaScript 的关系:前者是后者的语法规格,后者是前者的一种实现 Babel:将ES6代码转为ES5代码 http://babeljs.io/ image 新特性 let.const let 定义的变量不会被变量提升,const 定义的常量

6周学习计划,攻克JavaScript难关(React/Redux/ES6 etc.)

6周学习计划,攻克JavaScript难关(React/Redux/ES6 etc.) 余博伦· 2 个月前 原文链接:A Study Plan To Cure JavaScript Fatigue 作者:Sacha Greif 和大家一样,最近我也看了Jose Aguinaga写的How it feels to learn JavaScript in 2016. 显然这篇文章击中了人们的痛处.它在Hacker News上排了不止一次第一.同样也是/r/javascript上最火的一篇,在Med

es6快速入门

上次分享了es6开发环境的搭建,本次接着分享es6常用的特性. 1.变量声明let和const 我们都是知道在ES6以前,var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部).这就是函数变量提升例如: function aa() { if(bool) { var test = 'hello man' } else { console.log(test) } } 以上的代码实际上是: function aa() { var test // 变量提升