问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JS中“arguments对象”是什么?

发布网友 发布时间:2022-04-23 09:04

我来回答

3个回答

懂视网 时间:2022-04-20 12:19

一.在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Array,但实际上又不是一个Array实例。可以通过如下代码得以证实(当然,实际上,在函数funcArg中,调用arguments是不必要写成funcArg.arguments,直接写arguments即可)。

Js代码

Array.prototype.testArg = "test"; 
function funcArg() { 
 alert(funcArg.arguments.testArg); 
 alert(funcArg.arguments[0]); 
} 
 
alert(new Array().testArg); // result: "test" 
funcArg(10);  // result: "undefined" "10"

二.arguments对象的长度是由实参个数而不是形参个数决定的。形参是函数内部重新开辟内存空间存储的变量,但是其与arguments对象内存空间并不重叠。对于arguments和值都存在的情况下,两者值是同步的,但是针对其中一个无值的情况下,对于此无值的情形值不会得以同步。如下代码可以得以验证。

Js代码

function f(a, b, c){ 
 alert(arguments.length); // result: "2" 
 a = 100; 
 alert(arguments[0]); // result: "100" 
 arguments[0] = "qqyumidi"; 
 alert(a);   // result: "qqyumidi" 
 alert(c);   // result: "undefined" 
 c = 2012; 
 alert(arguments[2]); // result: "undefined" 
} 
 
f(1, 2);

三.由JavaScript中函数的声明和调用特性,可以看出JavaScript中函数是不能重载的。

根据其他语言中重载的依据:"函数返回值不同或形参个数不同",我们可以得出上述结论:

第一:Javascript函数的声明是没有返回值类型这一说法的;

第二:JavaScript中形参的个数严格意义上来讲只是为了方便在函数中的变量操作,实际上实参已经存储在arguments对象中了。

另外,从JavaScript函数本身深入理解为什么JavaScript中函数是不能重载的:在JavaScript中,函数其实也是对象,函数名是关于函数的引用,或者说函数名本身就是变量。对于如下所示的函数声明与函数表达式,其实含以上是一样的(在不考虑函数声明与函数表达式区别的前提下),非常有利于我们理解JavaScript中函数是不能重载的这一特性。

Js代码

function f(a){ 
 return a + 10; 
} 
 
function f(a){ 
 return a - 10; 
} 
 
// 在不考虑函数声明与函数表达式区别的前提下,其等价于如下 
 
var f = function(a){ 
 return a + 10; 
} 
 
var f = function(a){ 
 return a - 10; 
}

四.arguments对象中有一个非常有用的属性:callee。arguments.callee返回此arguments对象所在的当前函数引用。在使用函数递归调用时推荐使用arguments.callee代替函数名本身。

如下:

Js代码

function count(a){ 
 if(a==1){ 
 return 1; 
 } 
 return a + arguments.callee(--a); 
} 
 
var mm = count(10); 
alert(mm);

热心网友 时间:2022-04-20 09:27

函数体内标识符arguments指向实参象引用实参象类数组象 arguments[0]arguments.length

arguments?

答:1:arguments收实参副本

词析, 首先按形参形AO属性,值undefined

实参传, 再修改AO相应属性.

2:并所收实参收集起,放arguments象

t(a,b,c){},

调用: t(1,2,3,4,5) 5参数

, AO属性a,bc,3属性, arguments1,2,3,4,5, 所值

于超形参数外实参, 通arguments获

3:arguments 索引  0, 1,2,....递增,与实参逐应

4:arguments.length 属性代表实参数

5:arguments定数组, 比较像数组象,虽length属性

6:arguments每函数都,,arguemnts内部找自身arguments,

引用外层arguments

<script type="text/javascript">

// 求圆形面积,矩形面积, 三角形面积

function area () {

if(arguments.length == 1) {

alert(3.14 * arguments[0] * arguments[0]);

} else if(arguments.length == 2) {

alert(arguments[0] * arguments[1]);

} else if(arguments.length == 3) {

alert(arguments[0] + arguments[1] + arguments[2]);

} else {

return null;

}

}

area(10,20,30);

</script>

热心网友 时间:2022-04-20 10:45

  参考下我的js笔记

  在函数体内,标识符arguments是指向实参对象的引用,实参对象是一个类数组对象 arguments[0],arguments.length

  arguments是什么?
  答:1:arguments是收到的实参副本
  在词法分析中, 首先按形参形成AO的属性,值为undefined
  当实参传来时, 再修改AO的相应属性.
  2:并把所有收到实参收集起来,放到一个arguments对象里
  t(a,b,c){},
  调用时: t(1,2,3,4,5) 5个参数
  此时 , AO属性只有a,bc,3个属性, arguments里有1,2,3,4,5, 所有的值

  对于超出形参个数之外的实参, 可以通过arguments来获得
  3:arguments 的索引 从 0, 1,2,....递增,与实参逐个对应
  4:arguments.length 属性代表实参的个数
  5:arguments一定不是数组, 是长的比较像数组的一个对象,虽然也有length属性
  6:arguments每个函数都会有,因此,arguemnts只会在内部找自身的arguments,
  无法引用到外层的arguments
  <script type="text/javascript">
  // 求圆形面积,矩形面积, 三角形面积
  function area () {
  if(arguments.length == 1) {
  alert(3.14 * arguments[0] * arguments[0]);
  } else if(arguments.length == 2) {
  alert(arguments[0] * arguments[1]);
  } else if(arguments.length == 3) {
  alert(arguments[0] + arguments[1] + arguments[2]);
  } else {
  return null;
  }
  }
  area(10,20,30);
  
  </script>
什么是JS中的arguments对象

在函数体内,标识符arguments是指向实参对象的引用,实参对象是一个类数组对象 arguments[0],arguments.length arguments是什么?答:1:arguments是收到的实参副本 在词法分析中, 首先按形参形成AO的属性,值为undefined 当实参传来时, 再修改AO的相应属性.2:并把所有收到实参收集起来,放到一个arguments对象...

js arguments

arguments是属于js下的一个中函数内置的一个对象,而执行函数方法的实参中的值都存储于arguments中。简单来说,arguments是属于对象的一个特殊属性,arguments对象就好像是数组,但是它却并不是数组。其中argument对象包含了函数调用的参数数组,通过这种方式就能够很便捷的找到最后一个参数的值。此外,arguments...

你知道 JavaScript 中的 Arguments 对象都有哪些用途吗?

JavaScript中,Arguments对象是一个特殊的类数组对象,它记录了函数调用时传递的实际参数。通过使用Arguments,可以提升函数的灵活性和适应性。接下来,我们总结了Arguments对象的主要用途。1. 获取实参和形参的个数:使用arguments.length属性可以获取函数的实参个数,函数对象的length属性则用于获取函数的形参个...

什么是JS中的arguments对象

这个叫传参数组;里面包含了这个函数的所有传参,并且排列成一个数组。

arguments是什么

arguments是一个类数组对象。代表传给一个function的参数列表。arguments对象是函数内部的本地变量。arguments对象并不是一个真正的 Array 。它类似于数组,但没有数组所特有的属性和方法,除了 length 。虽然,它不是数组,但是你可以把它变成数组,比如:varargs=Array.prototype.slice.call(arguments);用...

arguments怎么读

arguments是收到的实参副本,在词法分析中,首先按形参形成AO的属性,值为undefined当实参传来时,再修改AO的相应属性。length,获取arguments对象的长度。callee,引用当前正在执行的函数。其实callee对于没有命名的函数调用自身时就是一个福音了,比如对于没有命名的函数求1到n自然数之和。

js新手求助:Uncaught TypeError: Cannot read property '1' of...

arguments是参数,在你的function中传进去的参数。第一中情况的arguments是你getComputedStyle(arguments[0],false)的属性,它没有arguments属性或arguments的个数小于2,当然会出错了,而第二种情况是把你传进去的参数作为属性穿进去的所以正确。如果你不明白,那换另一种说法:假如你有对象obj,那么第一种...

js中arguments和event的关系

arguments表示的是传进来的参数,第一个参数arguments[0],第二个arguments1[1]比如:function a(){//这里没有写接受参数 } 但是下面却有传参 a(1,2,3)那么就可以用 arguments[0],arguments[1],arguments[2]获取到值

Javascript中判断变量是数组还是对象(array还是object)

答案:1、如果你只是用typeof来检查该变量,不论是array还是object,都将返回‘objec'。此问题的一个可行的答案是是检查该变量是不是object,并且检查该变量是否有数字长度(当为空array时长度也可能为0)。然而,参数对象【arguments object】(传给制定函数的所有参数),也可能会适用于上述方法,技术上...

巨难的JS脚本引用问题,这段代码如何理解

arguments对象用来访问函数的参数,比如:function test(){ for(var i=0;i&lt;arguments.length;i++)document.write(arguments[i]+"");} 调用语句:test("first","second","third");输出的结果就是first second third 你的输入参数可以是很多个,arguments利用下标,可以自动获取输入参数的值(按照参数...

arguments中文 bushes是什么意思 javascript对象 javascript对象有哪些 js对象添加另一个对象 arguments JS中编写小车对象 js中对象一般由 js判断对象是否相等
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...唱的.长头发,一边弹钢琴一边唱很温柔的情歌,反正那个男人的长... 2012年重大事件? c盘变成红色了,怎么清理啊 pet和pp有什么区别 公司辞退工伤员工怎么补偿 怎样提高我在理科的学习能力呢? 信息流广告投放平台都有哪些? worth哪个诗人 东方花映冢 ~ Phantasmagoria of Flower View.系统说明 CAD编辑窗口位置如何调? argument是什么意思 argument在这里什么意思? js中arguments是什么?怎样简单理解? this和arguments的意思 在聊哲学话题的时候“arguments”通常是什么意思? openn.arguments中 arguments是什么意思 java中args是什么意思? Argument是什么意思 《德语助手》德汉 arguments什么意思 英语parameter和argument作为参数的意思区别是什么? javascript里的arguments是什么意思?? 编程中argument什么意思?一定要准确.. argument是什么意思中文 psv 1000 后壳区别 excel怎么把这张表的楼幢号稍微快一点的写出来呢? excel中如何把数字房号用公式变为几单元几号楼房间号码的 如何在EXCEL中输入房号,从三楼开始的详细如图 求助大神excel中如何有简便方法快速输入小区楼号单元号门牌号怎么用excel表示 excel怎么在一堆楼数据中间,插入没有的楼栋 excel中,怎样能快速从一行字里提取出/小区名称/楼幢/房号。 关于js中的组合继承,这里的arguments是什么意思 期货是t+0还是t+1 期货是T+1模式吗? 手机网购与商家争执如何找到小二介入? 股指期货是不是T+0的交易 期货的交易制度是T+0还是T+1 手机淘宝怎么联系淘小二? 期货t十0究竟是什么意思 期货交易是T+1还是T+0呢? 内存卡c10高速卡啥意思? 内存卡c10是什么意思 如何从零开始学习制作二维动画? 帮忙看下这张内存卡是c10高速卡吗? 内存卡u3和c10哪个更适合行车记录仪 二维动画制作步骤是怎样的? 内存卡上那个u3和c10都是啥意思啊? 怎么制作二维动画和三维动画啊? 手机有必要上c10内存卡的高速吗? 怎么在初页最后一页中加入二维码识别 二维动画怎么制作