JavaScript中arguments的使用方法

 更新时间:2022年05月11日 17:26:01   作者:​ 编程学习网   ​  
这篇文章主要介绍了JavaScript中arguments的使用方法,arguments 是一个对应于传递给函数的参数的类数组对象。下文详细介绍,需要的小伙伴可以参考一下

一、arguments的使用

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

arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点:

  • 具有 length 属性
  • 按索引方式储存数据
  • 不具有数组的 push , pop 等方法

使用场景:

利用函数求任意个数的最大值

function maxValue() {
      var max = arguments[0];
      for (var i = 0; i < arguments.length; i++) {
         if (max < arguments[i]) {
                    max = arguments[i];
         }
      }
      return max;
}
console.log(maxValue(2, 4, 5, 9));
console.log(maxValue(12, 4, 9));

在实际开发,建议不要再使用arguments了,请使用ES6的解构语法,比下:

function maxValue(...data) {
  let max=data[0]
  for (let i = 0; i < data.length; i++) {
    if (max < data[i]) {
      max = data[i];
    }
  }
  return max;
}
console.log(maxValue(2, 4, 5, 9));
console.log(maxValue(12, 4, 9));

二、arguments.callee的使用

callee是arguments对象的属性。在函数体内,它指向当前正在执行的函数。

ECMAScript 5 禁止在严格模式中使用 arguments.callee()。当一个函数必须调用自身的时候,假如它是函数表达式则给它命名,或者使用函数声明,避免使用 arguments.callee()

使用场景:

使用arguments.callee最常见的情景是当我们要创造一个递归函数的时候:

function factorial(num){
    if(num<=1){
        return 1;
    }else {
        return num * arguments.callee(num-1);
    }
}
console.log(factorial(4)); //24

但是如果代码是在严格模式下开发,使用"use strict";则会出现报错信息:

Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them

在严格模式下不能通过脚本访问arguments.callee,访问这个属性会报错,那么可以使用命名函数表达式来达到相同的结果:

"use strict";
var factorial = (function f(num){
     if(num<=1){
        return 1;
    }else {
        return num * f(num-1);
    }
})

console.log(factorial(4)); //24

到此这篇关于JavaScript中arguments的使用方法的文章就介绍到这了,更多相关 arguments的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Webpack如何引入bootstrap的方法

    Webpack如何引入bootstrap的方法

    本篇文章主要介绍了Webpack如何引入bootstrap的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • ECMAScript6轮播图实践知识总结

    ECMAScript6轮播图实践知识总结

    最近萌生了用ECMAScript6写一个轮播图的想法,以前就知道ECMAScript6,但是一直没有学,现在终于下决心学了,本篇文章会总结在实践中用到的ES6的知识。
    2016-08-08
  • 使用ImageMagick进行图片缩放、合成与裁剪(js+python)

    使用ImageMagick进行图片缩放、合成与裁剪(js+python)

    由于需要在服务器端处理,使用就研究使用imagemagick来进行。同时准备封装了一个Node.js和Python的方法,主要还是讲一下然后使用imagemagick来对图片进行缩放、合成后进行裁剪吧
    2013-09-09
  • 分享经典的JavaScript开发技巧

    分享经典的JavaScript开发技巧

    这篇文章向大家分享了40多个经典的JavaScript开发技巧,相信读完这篇文章对大家开发javascript有很大的帮助作用,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • javascript简单链式调用案例分析

    javascript简单链式调用案例分析

    这篇文章主要介绍了javascript简单链式调用,结合具体实例形式模拟jQuery分析了链式调用的原理与具体实现技巧,需要的朋友可以参考下
    2017-05-05
  • JavaScript查看代码运行效率console.time()与console.timeEnd()用法

    JavaScript查看代码运行效率console.time()与console.timeEnd()用法

    今天小编就为大家分享一篇关于JavaScript查看代码运行效率console.time()与console.timeEnd()用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 两个JavaScript中的特殊值null和undefined详解

    两个JavaScript中的特殊值null和undefined详解

    Null和Undefined是JavaScript中非常基础和重要的概念,理解它们的含义、特点和使用方式对于避免出现错误和编写健壮的应用程序非常重要,这篇文章主要介绍了两个JavaScript中的特殊值null和undefined详解,需要的朋友可以参考下
    2023-06-06
  • JavaScript三元表达式示例详解

    JavaScript三元表达式示例详解

    这篇文章主要给大家介绍了关于JavaScript三元表达式的相关资料,三元运算符是JavaScript仅有的使用三个操作数的运算符,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • JavaScript数组深拷贝和浅拷贝的两种方法

    JavaScript数组深拷贝和浅拷贝的两种方法

    在使用JavaScript对数组进行操作的时候,我们经常需要将数组进行备份,事实证明如果只是简单的将它赋予其他变量,那么我们只要更改其中的任何一个,然后其他的也会跟着改变,这就导致了问题的发生。
    2014-04-04
  • JavaScript实现简易的天数计算器实例【附demo源码下载】

    JavaScript实现简易的天数计算器实例【附demo源码下载】

    这篇文章主要介绍了JavaScript实现简易的天数计算器,结合实例形式分析了javascript日期与时间计算的相关技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下
    2017-01-01

最新评论