javascript 中剩余参数和展开运算符的用法

2024-03-21

ECMAScript 6中添加的rest参数有什么用?

例如,在 ECMAScript 5 中,您可以执行以下操作来获取从第二个元素开始的参数数组:

// ES 5
store('Joe', 'money');
store('Jane', 'letters', 'certificates');
function store(name) {
  var items = [].slice.call(arguments, 1); //['money'] in first case
  items.forEach(function (item) {
    vault.customer[name].push(item);
  });
}

这相当于 ECMAScript 6 中的以下代码:

// ES 6
store('Joe', 'money');
store('Jane', 'letters', 'certificates');
function store(name, ...items) {
  items.forEach(function (item) {
    vault.customer[name].push(items)
  });
}

它们之间的区别只是语法还是存在性能问题?

也适用于扩展运算符 (...)

//in ecmascript5
var max = Math.max.apply(null, [14, 3, 77]);
//but in ecmascript6
var max = Math.max(...[14, 3, 77]);

这只是语法更改还是性能问题?


它们之间的区别只是语法还是存在性能问题?

两者,以及更多...

其余参数:

  1. Are a 已知的习语其他语言(Ruby、Python)。
  2. Are 更容易阅读并维持(相对于slice).
  3. Are 更容易理解对于初学者。
  4. 可以(并且可能会)导致更好的性能,因为引擎可以优化。
  5. Are 工具更友好,因为它们可以进行静态分析。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript 中剩余参数和展开运算符的用法 的相关文章

  • onclick 函数上的 CSS 选择器

    有没有办法让CSS选择器onclick function 您可以在onclick https stackoverflow com questions 24365416 select element which have specific a
  • 在生产中使用 babel-node 可以吗

    我一直在使用 babel node 和 browserify 以及 babelify 转换来开发一个网站 以支持 ES6 语法 我只是想知道 我可以在生产中运行它吗 babel node server 而不是 node server 要在
  • 如何将 div (或任何元素)覆盖在表格行 (tr) 上?

    我想在恰好有多个列的表行 tr 标记 上覆盖一个 div 或任何可以使用的元素 我尝试了几种方法 似乎都不起作用 我在下面发布了我当前的代码 我确实得到了一个覆盖 但不是直接覆盖在该行上 我尝试将覆盖顶部设置为 div Bottom css
  • 使用画布元素作为文本区域

    我正在寻找有关如何使用类似于文本区域的画布元素的直接描述 我见过这样的项目Ace http ace ajax org 只是想知道如何像文本区域一样写入该区域 只是纯文本 没有什么花哨的 提前致谢 Ace 曾经是 Mozilla Skywri
  • 执行页面的 javascript 后保存页面的 html 输出

    我正在尝试抓取一个网站 它首先加载 html js 使用js修改表单输入字段 然后使用POST 如何获得 POSTed 页面的最终 html 输出 我尝试使用 phantomjs 执行此操作 但它似乎只有渲染图像文件的选项 谷歌搜索表明这应
  • jQuery - 提高处理 XML 时的选择器性能

    我正在处理一个 XML 文件 当使用 XPath 样式选择器选择节点时 该文件的性能非常慢 这是运行特别慢的部分代码 for i 0 i
  • NodeJs读取JSON文件

    我正在使用 NodeJs 读取 json 文件 我的代码非常基本 var obj require sample json console log obj 0 Sample json 文件包含这样的字符串化 JSON sample good
  • Amcharts 图表 - 图表列到自定义 URL 的超链接以在新选项卡/窗口中打开

    我正在尝试制作一个 amcharts 图表 其中的列链接到自定义网址 并希望网址在新选项卡 窗口中打开 我尝试将此代码添加到图形对象中 但它不起作用 它在同一选项卡 窗口中打开链接 listeners event clickItem met
  • getElementsByClassName & IE8:对象不支持此属性或方法[重复]

    这个问题在这里已经有答案了 I know getElementsByClassName 不支持IE8 你知道我可以用什么来代替吗 我因错误而变得烦人 对象不支持此属性或方法 HTML 代码是 function sumar var elems
  • JavaScript 原型 - 请澄清

    有人可以帮我理解原型属性吗 我不明白原型属性是函数的属性还是函数内部的属性 假设我们创建以下构造函数 Food 此时 函数 Food 具有 Food prototype 属性 由于 Food 是 Object 的实例 因此这意味着 Obec
  • 如何删除从 javascript var 转义的反斜杠?

    我有这个变量 var x div class Which is div class 但是我需要 div class abcdef 我怎样才能 unes cape 这个变量来删除所有转义字符 您可以通过正则表达式将反斜杠后跟引号替换为仅引号
  • AngularJS - 服务、工厂、过滤器等中的依赖注入

    因此 我想在我的 Angular 应用程序中使用一些插件和库 目前 我只是引用这些函数 方法 因为它们是在 99 的应用程序中以完全忽略依赖注入的方式使用的 我有 例如 javascript 库 MomentJS 它处理格式化和验证日期 并
  • 如何正确删除动画集中引用的 Raphael SVG 元素?

    我有一组动画 Raphael SVG 元素 我正在通过用户发起的 ajax 调用添加新元素并删除旧元素 我 set push 新元素 但因为我需要删除的元素通常不是集合中的最后一个元素 所以我使用 element remove 而不是 se
  • 大型应用的回流/布局性能

    我正在使用 GWT 构建一个 HTML 应用程序 其性能总体上是正确的 有时 它会加载 DOM 中的许多对象 并且应用程序会变得很慢 我使用 Chrome 开发者工具分析器来查看时间花在哪里 在 Chrome 下 一旦应用程序被编译 即没有
  • 使用 Socket.IO 时如何访问会话标识符?

    我有一个聊天 我需要管理独特的连接 我四处搜寻 但我找到的解决方案似乎都已被弃用 那么 如何使用 Socket IO 获取套接字的会话 ID 我在用着Node js http en wikipedia org wiki Node js Ex
  • 在多个数组中搜索字符串,然后设置 var - jQuery

    我正在寻找基于字符串存在于哪个数组中设置一个变量 例如 var primary red blue yellow var secondary orange purple green 然后检查 purple 并返回它在 secondary 数组
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • 获取 byte[]

    我有一个 html 画布 如下所示 output is a base64string of image data var oldImage new Image oldImage onload function var resizeRatio
  • Morgan Logger + Express.js:写入文件并在控制台中显示

    我正在尝试将 Morgan 与 Express js 结合使用来编写日志文件 同时也在控制台上显示我的日志 我正在使用这段代码 var logger require morgan var accessLogStream fs createW
  • 角度 ng-repeat 根据条件添加样式

    我在 div 列表上使用 ng repeat 并且在渲染此 div 的 json 中手动添加项目 我需要定位我在 json 中添加的最后一个 div 它会自动在屏幕上渲染 即 couse 光标所在的位置 其余部分保持在相同位置 但没有给出渲

随机推荐

  • Android:来电自动接听,播放音频文件

    在Android中 当有来电时 我想接听它 然后 从我的应用程序中 在通话期间自动播放音频文件 对方应该听到它 这可能吗 你所说的情况在安卓上是不可能实现的 Android 无法访问通话中的音频流 不过我可以给你一些关于如何去做的想法 首先
  • 无需登录即可启动Raspberry Pi [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想问你是否有任何方法可以启动树莓派 使用Raspbian 而无需登录和密码并直接进入GUI 以 Windows 为例 拉斯布比喘息 以下
  • 在 /OPT:ICF 存在的情况下,Visual Studio 2013 是否可以正确优化?

    我希望下面的程序始终返回 0 但是 对于 Visual Studio 2013 更新 4 程序在发布版本中退出 1 我不确定这是否是一个错误 或者编译器的优化器是否正确并且依赖于某些边缘行为 如果关闭 CONST 宏 则释放 exe 将返回
  • 查找mysql中记录占用的空间

    我想找到数据库中记录占用的空间 我有2000条记录 我需要找到mySQL中的empid 4在数据库中占用了多少空间 请让我知道 mySQL 中的查询 显示表状态是您正在寻找的命令 http dev mysql com doc refman
  • 解决继承委托上不兼容的属性类型的语法

    我继承的一些代码有一个恼人的警告 它声明一个协议 然后使用它来指定委托 protocol MyTextFieldDelegate interface MyTextField UITextField property nonatomic as
  • 在非管理员帐户下运行自托管 OWIN Web API

    自托管 OWIN Web API 是否可以在非管理员帐户下运行 我已经尝试了几十个网址预订 但没有任何效果 服务无法启动 并显示 访问被拒绝 当帐户被添加到管理员角色时它会起作用 但我不希望这样 下面的代码在Win 7框架4 5 2上运行
  • python selenium 示例不起作用,说没有名为 Keys 的模块

    我在 Windows 机器上通过 pip 安装了 selenium 只需试用网站上的示例即可 http pypi python org pypi selenium from selenium import webdriver from se
  • 在 Firebase 中增加数据点的最简单方法?

    我在增加 Firebase 中的数据时遇到问题 Firebase clickedCounter 0 这是我的代码 IBAction func plus sender UIButton FIRDatabase database referen
  • Twisted:为什么将延迟回调传递给延迟线程会使线程突然阻塞?

    我尝试使用 txredis redis 的非阻塞扭曲 api 作为持久消息队列 但没有成功 我正在尝试使用我正在开发的 scrapy 项目进行设置 我发现虽然客户端没有阻塞 但它变得比本来应该的要慢得多 因为反应堆循环中本应是一个事件的事件
  • OpenCV:如何使用 HOGDescriptor::Detect 方法?

    I have succeeded in tracking moving objects in a video 然而我想决定一个物体是否是人 我已经尝试过HOGDescriptor在 OpenCV 中 HOGDescriptor 有两种检测人
  • django.db.utils.DataError:除以零

    我在以下代码行中收到错误 context stock margin context top stock annotate Avg purchase ExpressionWrapper F total puchase F quantity p
  • 第一个缩放事件删除中心变换

    我有一个像这样的 径向整齐树 https bl ocks org mbostock 4063550 https bl ocks org mbostock 4063550 我正在尝试添加缩放和平移 但我无法使缩放和平移正常工作 我的代码看起来
  • 在 JTree 上过滤[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Problem 对 a 应用过滤JTree以避免某些节点 叶子出现在渲染版本中JTree 理想情况下 我正在寻找一种允许动态过滤器的解决方案 但
  • React-native 在浏览器中打开链接并返回到应用程序

    我正在开发一个反应原生应用程序 它应该与支付网关进行通信 在完成支付过程 成功或失败 后 我需要向用户显示警报 为此 我打开了一个链接WebView之后我得到了 return 的 urlonNavigationStateChange并显示成
  • 一个程序如何控制另一个程序?

    机器人 它们是如何工作的 他们是否告诉视频游戏按下了某个键或点击了鼠标 如果没有 有没有办法让你的程序告诉另一个程序按下了一个键 我想制作一个程序来击败一些游戏 因此 任何资源或示例都值得赞赏 Update 因此一种方法是模拟击键 那么有哪
  • Javascript 中的“柯里化”和“组合”是同一概念吗?

    最近我在一本 Javascript 书中读到了有关函数组合的内容 然后在一个网站上我看到有人将其称为柯里化 它们是同一个概念吗 Omarjmh 的答案很好 但在我看来 撰写示例对于学习者来说极其复杂 它们是同一个概念吗 No 首先 柯里化是
  • 如何在Python中建立和求解联立方程

    对于固定整数n 我有一组2 n 1 联立方程如下 M p 1 n p 1 n M n 1 2 n N p 1 p 1 n M p 1 N p 1 n p 1 n M n 1 p n N p 1 M 1 1 n 2 n M n 1 2 n N
  • 如何编写一个正则表达式来匹配任意顺序的字符?

    我正在尝试编写一个正则表达式来匹配一组字符 而不考虑顺序 例如 str act str scan Insert expression here 将匹配 cat act tca atc tac cta 但不匹配ca ac or cata 我在
  • 从 IPHostEntry 获取有效 IP

    我尝试使用此方法获取我的计算机的 IP 地址 var ipadd Dns GetHostEntry Dns GetHostName foreach var ipAddress in ipadd AddressList Console Wri
  • javascript 中剩余参数和展开运算符的用法

    ECMAScript 6中添加的rest参数有什么用 例如 在 ECMAScript 5 中 您可以执行以下操作来获取从第二个元素开始的参数数组 ES 5 store Joe money store Jane letters certifi