关于argument变量的理解

1.关于Argument数组的行为特性

  1. arguments的行为有点像数组,但它其实并不是数组,它不具备JavaScript核心数组的一些方法如join、sort、slice等方法

  2. arguments对象本身是个由函数调用时传入的实参组成的伪数组,访问单个参数的方式与访问数组元素的方式相同。索引 n 实际上是
    arguments 对象的 0…n 属性的其中一个参数。

function test(x, y, z) {
console.log(test.length);//函数的形参个数,3
console.log(arguments.length);//函数调用时的实参个数,2
console.log(arguments.callee === test);//true,初始值就是正被执行的 Function 对象,用于在函数内部调用自身,特别是函数本身为匿名函数时,要在内部调用自己

console.log(arguments[2]);//undefined, arguments对象本身是个由函数调用时传入的实参组成的伪数组
}
test(10, 20);

### 关于编程中的 Argument 的定义与用法 在计算机科学领域,argument 是指传递给函数、方法或过程的数据项。这些数据可以用于执行特定的操作并返回结果。以下是关于 argument 的一些核心概念及其常见用法: #### 1. 参数的分类 参数通常分为两种主要类型:形式参数(formal parameters)和实际参数(actual parameters)。 - **形式参数**是指在函数声明中使用的变量名称[^3]。它们充当占位符,在调用时会被替换为具体的值。 - **实际参数**是在函数调用期间传入的具体值或表达式[^4]。 例如,在 C++ 或 Java 中: ```cpp void greetUser(std::string name); // 形式参数 'name' greetUser("Alice"); // 实际参数 "Alice" ``` #### 2. 参数的传递方式 参数可以通过不同的方式进行传递,主要包括以下几种模式: - **按值传递 (Pass by Value)**:将实参的副本传递给形参,因此修改不会影响原始数据[^5]。 - **按引用传递 (Pass by Reference)**:直接传递内存地址,任何对形参的更改都会反映到原数据上[^6]。 - **按指针传递 (Pass by Pointer)**:类似于按引用传递,但在某些语言中更显式地处理内存管理[^7]。 示例代码展示不同传递方式的效果: ```cpp #include <iostream> using namespace std; // Pass by value example void modifyByValue(int x) { x += 10; } // Pass by reference example void modifyByReference(int& y) { y += 10; } int main() { int a = 5; cout << "Before modification: " << a << endl; modifyByValue(a); cout << "After pass-by-value: " << a << endl; // 输出仍为 5 modifyByReference(a); cout << "After pass-by-reference: " << a << endl; // 输出变为 15 return 0; } ``` #### 3. 默认参数 许多现代编程语言允许开发者为函数的形式参数指定默认值。如果未提供对应的实参,则会自动采用该默认值[^8]。 Python 示例: ```python def power(base, exponent=2): # 设置默认指数为 2 return base ** exponent print(power(3)) # 结果为 9,默认使用平方运算 print(power(3, 3)) # 结果为 27,覆盖默认值 ``` #### 4. 可变数量的参数 部分高级特性还支持可变长度的参数列表,这使得单个函数能够接受任意多个输入值[^9]。 JavaScript 示例: ```javascript function sum(...args) { // 使用剩余参数语法收集所有数值 let total = 0; for (let num of args) { total += num; } return total; } console.log(sum(1, 2, 3)); // 返回 6 console.log(sum(1, 2, 3, 4));// 返回 10 ``` --- ### 总结 Argument 在程序设计中扮演着重要角色,它不仅决定了如何向功能模块传输必要的信息,也直接影响了代码的行为逻辑以及性能表现。理解其基本原理及相关实现技巧对于提升开发效率至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值