当我们不确定有多少参数传递的时候,可以使用 arguments 来获取,在 JavaScript 中, arguments 实际上它是当前函数的一个内置对象。

所有的函数都内置了一个 arguments 对象,arguments 对象中 存储了传递的所有实参 。

  例如:

    function numMax(){

      var max=arguments[0];  // arguments 中存储了numMax函数中的所有实参:23,45,96,87

      for( var i=1; i<=arguments.length-1;i++){

        if(arguments[i] > max){

          max = arguments[i];

        }

      }

    }

    numMax(23,45,96,87);

在调用函数时,浏览器每次都会传递进两个隐含的参数:

1. 函数的上下文对象 this

2. 封装实参的对象 arguments

  - arguments 是一个类数组对象,它也可以通过索引来操作数据,也可以获取长度

  - 在调用函数时,我们所传递的实参都会在 arguments 中保存

  - arguments . length 可以用来获取实参的长度

  - 即使不定义形参,也可以通过 arguments 来使用实参,只不过比较麻烦

    arguments[ 0 ] 表示第一个实参

    arguments[ 1 ] 表示第二个实参

  - arguments 里面有一个属性:callee,属性对应一个函数对象,就是当前正在执行的函数的对象

    可以使用 属性 arguments 和函数 fun 做比较,相同返回 true,否则返回 false

    console . log( arguments . callee == fun ); // true

  例:

    function fun(){

      console . log( arguments instanceof Array ); // 判断 arguments 是否是数组

      console . log( Array . isArray( arguments ) ); // 判断 arguments 是否是数组

      console . log( arguments . length ); // fun 函数实参的长度

    }

    fun( );

最新文章

  1. 一劳永逸:域名支持通配符,ASP.NET Core中配置CORS更轻松
  2. 0c-40-ARC下多对象内存管理
  3. Qt入门(4)——Qt常见控件
  4. PL/SQL客户端连接虚拟机(linux)下的oracle服务器配置
  5. Redis分布式锁的try-with-resources实现
  6. scala的input
  7. web框架开发-模板层
  8. Python_%---format_43
  9. Ubuntu16.04中nginx除80之外其他端口不能访问
  10. Git 子模块 - submodule(转)
  11. Nginx模块开发与架构解析(nginx安装、配置说明)
  12. 结合sklearn的可视化工具Yellowbrick:超参与行为的可视化带来更优秀的实现
  13. oracle 如何查看当前用户的表空间名称
  14. pcre库
  15. adb logcat介绍
  16. 【CSS】定位层
  17. 从url到页面加载浏览器做了什么?
  18. ibatis.net:在VS中支持xml智能提示
  19. order by having group by
  20. block本质探寻三之block类型

热门文章

  1. Java转型大数据开发全套教程,都在这儿!
  2. python 三方库字典
  3. 数据结构:堆(Heap)
  4. 2018-2-13-win10-uwp-改变鼠标
  5. Linux下载工具-Wget
  6. 通过lua进行nginx的权限控制
  7. 历史上最详细的SpringCloud搭建微服务的过程。(包括注册中心,服务提供者和服务消费者)
  8. asp.net Mvc 增删改查
  9. leetcode-12双周赛-1244-力扣排行榜
  10. 深入理解MAGENTO – 第九章 – 数据集合瓦瑞恩