在一个函数体内,标识符argumens具有特殊意义。它是引用arguments对象的一个特殊属性。Arguments对象是一个类似数组的对象,可以按照数目获取传递给函数的参数值。Argument对象也定义了callee属性。
arguments对象还为JavaScript函数开发了一个项重要的可能性,即可以编写函数使之能够使用任意数目的实际参数。 下面是一个判断任意个参数中的最大值的例子:
function max( /*...*/){
var m=Number.NEGATIVE_INFINITY;
for(var i=0;i<arguments.length;i++){
if(arguments[i]>m)
{
m=arguments[i];
}
}
return m;
}
像这样能够接受任意数目的参数的函数叫做可变参数函数。
记住:arguments并非真正的数组,他是一个Arguments对象。
属性callee
除了数组元素,Arguments对象还顶一个callee属性,用来引用当前正在执行的函数。这个属性没有太大的用处,但它可以用来允许对未命名的函数递归地调用自身。下面是一个为名的函数直接量,用于计算阶乘:
funciton (x)
{
if(x<=1) return 1;
return x* arguments.callee(x-1);
}
分享到:
相关推荐
字符串是不可变的,提供了一系列的方法如`length`获取长度,`charAt()`、`substring()`、`slice()`获取子串,`indexOf()`、`lastIndexOf()`查找字符位置,`replace()`替换字符串,`toUpperCase()`、`toLowerCase()`...
- UTF-8:Unicode的一种变体,可变长度编码,兼容ASCII,广泛用于Web。 - GBK:中国国家标准,扩展了GB2312,能表示更多的汉字。 8. **Python 2与Python 3的区别**: 主要包括print语句变为函数、除法运算改变、...
- **UTF-8**: Unicode 的一种编码方式,可变长度,兼容 ASCII。 - **GBK**: 中文编码标准,主要用于简体中文。 #### 14. 字节码和机器码的区别? - **字节码**: Python 编译后的中间代码,可以跨平台运行。 - **...
- **可变类型**:列表、字典等,可以修改其元素。 - **不可变类型**:字符串、元组等,一旦创建后不能更改。 #### 30. 示例 ```python v = dict.fromkeys(['k1', 'k2'], []) v['k1'].append(666) print(v) # {'k1'...
这对于处理可变参数数量的函数非常有用。 7. **对象作为函数参数**:在JavaScript中,对象常用于传递一组相关的数据给函数,这样可以组织和优化函数的参数。例如,可以创建一个接受对象参数的函数,对象的键值对...
**解释**:函数定义时不接受可变数量的参数,但在调用时提供了可变参数。 **解决方法**:确保函数调用时提供的参数数量与函数定义一致。 以上是对给定文件中的C语言错误信息进行的中文解释及建议的解决方法。希望...
- `arguments`对象:函数内部的一个内置对象,它包含了函数调用时传入的所有参数。 4. **数组**: - `Array`对象提供了许多实用的方法,如`push()`, `pop()`, `shift()`, `unshift()`, `slice()`, `splice()`等。...
`arguments`对象是函数调用时隐含传入的,它包含了所有传入函数的实际参数,并且可以通过索引来访问,还可以获取参数的长度,其中`arguments.callee`属性指向当前执行的函数。 2. **Date对象**: - Date对象在...
这意味着,如果参数是可变对象(如列表或字典),函数内部对参数的修改会影响到原始对象;如果是不可变对象(如整数、浮点数或字符串),则函数内部无法改变这些对象的值。 第三,函数的默认参数。在定义函数时,...
函数传参是函数接收输入的方式,JavaScript中的函数支持可变参数,也就是不定参数。`arguments`对象是一个类数组对象,它包含了函数调用时传入的所有参数,无论这些参数是否在函数声明中定义。例如,你可以编写一个...
- 可变与不可变参数:`*args`和`**kwargs`允许传递任意数量的位置和关键字参数。 - `default arguments`和`keyword-only arguments`:提供默认值和仅限关键字的参数。 6. **类与面向对象编程**: - 类定义:使用...
在此示例中,函数`add`接受可变数量的参数。如果传递了第三个参数`limitNumber`,则计算`a + b`的结果,并检查是否小于`limitNumber`。如果小于,则返回`limitNumber`;否则返回`a + b`的值。 ##### 2.2 基于参数...
11.6 可变长度的参数 11.6.1 非关键字可变长参数(元组) 11.6.2 关键字变量参数(字典) 11.6.3 调用带有可变长参数对象函数 11.7 函数式编程 11.7.1 匿名函数与lambda 11.7.2 内...
11.6 可变长度的参数 11.6.1 非关键字可变长参数(元组) 11.6.2 关键字变量参数(字典) 11.6.3 调用带有可变长参数对象函数 11.7 函数式编程 11.7.1 匿名函数与lambda 11.7.2 内...
数组是一个用于存储多个值的数据结构,它的长度是可变的,而且可以包含不同类型的元素,尽管建议尽量存储相同类型的数据以方便操作。数组在 JavaScript 中有以下两种定义方式: 1. 使用中括号 `[]`: ```javascript...
- const指针(Pointer to const):选项B和D中的`const int *`表示指针指向的内容不可变,因此不能用于修改x的值。 - const引用(Reference to const):选项D的`const int a`是一个常量引用,不能用于修改x的值,...
值得注意的是,在JavaScript中,每个函数都接受一个名为arguments的可变长度参数列表。arguments是一个类数组对象,包含了传递给函数的所有参数,它有一个length属性,但不具备数组的其他方法。在某些情况下,如果...
- **Type name does not support '...' arguments**: 类型名不支持变长参数列表。 - **Undefined behavior**: 不确定行为,通常是因为代码中存在逻辑错误或违反了C语言标准的行为。 - **Undefined identifier 'xxx'*...
7. **可变参数长度的方法(Variable-Length Method Arguments)** 除了变量注入,JDK 1.5还支持在方法签名中使用可变参数长度,允许方法接收不定数量的参数。 8. **静态导入(Static Import)** 静态导入允许将类...