<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="../unitl/test.js"></script>
<style>
#results li.pass {color:green;}
#results li.fail {color:red;}
</style>
</head>
<body>
<ul id="results"></ul>
</body>
<script> //完全没有任何显式参数的函数
function sum() { var sum = 0; //迭代所有传入参数,然后通过索引标记获取每个元素的值
for (var i=0; i<arguments.length; i++) { sum += arguments[i]; } return sum; } //调用函数并传入任意数量的参数
assert(sum(1,2)===3,"We can add two numbers");
assert(sum(1,2,3)===6,"We can add threee numbers");
assert(sum(1,2,3,4)===10,"We can add four numbers"); </script>
</html>

这个例子我们首先定义了一个没有显式任何参数的sum函数,尽管如此,我们依然可以通过arguments对象访问所有的函数参数。

遍历所有的参数即可他们的和。大功告成,我们现在可以调用函数并传入任意数量的参数,接着我们通过测试几种情况来看看一切是否正常。这正是arguments对象的魅力所在。我们可以通过他编写更多样,更灵活的函数来轻松应对各种不同的情况。

注意

      大多数情况下可以使用剩余参数(rest parameter)来代替arguments参数,剩余参数是整整的Array实例,也就是说你可以在他上面直接使用所有的数组方法。这对相对于arguments对象而言是个优势。

理解函数调用_使用arguments参数对所有函数参数执行操作的更多相关文章

  1. C语言_结构体变量指针做函数参数的使用案例

    # include <stdio.h> # include <stdlib.h> # include <string.h> # include <malloc ...

  2. JavaScript中匿名函数循环传参数(不触发函数的执行)

    我们都知道定义函数的方式有两种,一种是函数声明,另一种是函数表达式,函数声明的语法是这样的: function functionName(arg0, arg1, arg2) { // 函数体 } 函数 ...

  3. JS中函数参数和函数返回值的理解

    函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...

  4. (转)用库函数stdarg.h实现函数参数的可变

    原文地址:https://blog.csdn.net/jinkui2008/article/details/1967055 #define _INTSIZEOF(n)   ( (sizeof(n) + ...

  5. Javascript基础系列之(七)函数(argument访问函数参数)

    argument是javascript中函数的一个特殊参数,例如下文,利用argument访问函数参数,判断函数是否执行 <script type="text/javascript&q ...

  6. python 函数参数的传递(参数带星号的说明)

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  7. Python学习-函数,函数参数,作用域

    一.函数介绍 函数定义:函数时组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 我们已经知道python提供了许多内建函数,print(), type()等.我们也可以自己创建函数,这被叫 ...

  8. Python基础:10函数参数

    局部命名空间为各个参数值创建了一个名字,一旦函数开始执行,就能访问这个名字了. 在函数调用时,有非关键字参数和关键字参数之分,非关键字参数必须位于关键字参数之前. 在函数定义时,严格的顺序是:位置参数 ...

  9. ES6之函数参数

    ES6中对于函数参数主要增加了以下内容: 1.参数的扩展/数组的展开: 2.默认参数. 什么是参数的扩展? 看下面代码: <!DOCTYPE html> <html lang=&qu ...

  10. Spring MVC-从零开始-@RequestMapping结合@RequestParam (从HTTP键值对中取值,作用于函数参数)

    1.@RequestParam 注解使用的时候可以有一个值,也可以没有值:如果请求参数和处理方法参数的名称一样的话,@RequestParam 注解的 value 这个参数就可省掉了:@Request ...

随机推荐

  1. PHP 执行系统命令解压7z格式压缩包

    银行推送的账单是7z格式的压缩包,需要用程序对账单进行解压,网上关系PHP解压7z格式压缩包的资料很少 现在分享下处理过程,首先安装7-zip软件,我是在windows环境下调试的,下载地址https ...

  2. 初学银河麒麟linux笔记 第三章 QT缺少的模块下载、更新软件源操作

    在共享文件夹里将WINDOWS里已经编写好的QT程序编译之后,提示 Qt5: Unknown module(s) in QT: serialport 经查询,需要安装对应的模块库,写入 sudo ap ...

  3. [1] Multi-View Transformer for 3D Visual Grounding 论文精读

    参考: https://zhuanlan.zhihu.com/p/467913475 3D Visual Grounding小白调研笔记 https://zhuanlan.zhihu.com/p/34 ...

  4. (原创)odoo14下qweb模板的前端与后端语法区别

    1.后端(qweb打包) 后端使用t-inherit 指定继承的模板,使用t-inherit-mode 指定继承的模式,使用xpath定位标记,使用position指定扩展位置. 2.前端 前端仍旧使 ...

  5. gRPC 入门(一)

    前言 在学习 gRPC 之前,先学习 protobufu 协议,简单的来理解,我们可以使用他来定义 消息 和 服务.然后你只需要实现服务即可,剩下的东西,gRPC 会帮你自动完成. protobufu ...

  6. 关于flex

    flex 是 flex-grow.flex-shrink.flex-basis 的缩写. flex 的默认值是以上三个属性值的组合.假设以上三个属性同样取默认值,则 flex 的默认值是 0 1 au ...

  7. 分布式锁 -- redis

    原理 redis设置一个key和value,如果存在则获取锁失败,不存在则获取锁成功处理业务,业务处理完成后删除这条数据,可以带个失效时间. 代码 public void handleInvoice( ...

  8. 关于SQLsever2012报错的一些经验总结

    问题描述:数据库连接实例时出现报错情况: 问题截图: 故障软件:SQL sever2012 操作系统:windows sever 2022R2数据中心 期望结果:可以打开之前的实例 总结经验: 上面这 ...

  9. unittest学习总结

    2022-02-21 15:03:20 unittest --- 单元测试框架 - Python 3.9.10 文档 可以自由选择版本文档查看 一.unittest概念 unittest是Python ...

  10. jdbc封装工具类(无连接池)

    package com.huang; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepar ...