hand
5
_1_11_41
4
返回栏目
0k
2k
1k
2k
1k
1k
1k
2k
2k
2k
1k
2k
1k
2k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
2k
1k
2k
1k
1k
1k
1k
1k
1k
1k
2k
2k
1k
1k
1k
2k
1k
1k
2k
2k
1k
1k
1k
2k
1k
1k
2k
2k
1k
2k
1k
1k
2k
2k
2k
3k
3k
2k
3k
2k
3k
3k
3k
1k
2k
3k
2k
2k
3k
3k
2k
2k
6k
3k
2k
2k
5k
3k
4k
3k
3k
2k
4k
3k
3k
2k
3k
3k
1k
4k
4k
4k
2k
5k
3k
2k
3k
4k
3k
3k
4k
2k
3k
3k
4k
2k
2k
3k
4k
3k
3k
2k
5k
2k
3k
3k
3k
3k
2k
3k
3k
3k
2k
2k
2k
2k
3k
2k
2k
2k
3k
2k
2k
2k
2k
2k
2k
0.1k
0.2k
3k
2k
3k
2k
0.1k
2k
2k
4k
2k
2k
1k
2k
2k
3k
3k
3k
3k
2k
2k
3k
3k
3k
4k
3k
3k
4k
3k
2k
2k
3k
3k
3k
3k
3k
3k
2k
3k
3k
4k
4k
3k
3k
2k
2k
3k
2k
2k
1k
2k
3k
1k
2k
2k
2k
2k
2k
2k
2k
2k
2k
4k
2k
3k
2k
1k
2k
2k
2k
2k
2k
3k
2k
3k
1k
2k
2k
2k
0k
2k
2k
2k
2k
2k
2k
2k
3k
2k
2k
1k
1k
3k
2k
3k
1k
2k
1k
2k
2k
2k
2k
3k
1k
3k
2k
2k
2k
2k
2k
2k
1k
2k
2k
4k
3k
3k
2k
2k
2k
2k
2k
2k
4k
3k
3k
3k
2k
2k
2k
2k
2k
2k
3k
4k
返回前端 - Javascript栏目
作者:
贺及楼
成为作者
更新日期:2025-02-21 17:17:26
在 JavaScript 的世界里,函数就像是一个个小魔法师,它们能接收信息、处理信息,然后给出结果。而函数参数就像是魔法师手中的魔法道具,形参和实参则有着独特的传递规则,下面就让我们一起来揭开它们的神秘面纱。
形参,简单来说就是函数定义时声明的参数,它就像是一个占位符,告诉函数在被调用时会接收什么样的信息。而实参则是在调用函数时实际传递给函数的值。
让我们通过一个简单的例子来看看它们的区别:
// 定义一个函数,这里的 num1 和 num2 就是形参
function add(num1, num2) {
return num1 + num2;
}
// 调用函数,这里的 3 和 5 就是实参
let result = add(3, 5);
console.log(result); // 输出 8
在这个例子中,add
函数定义时的 num1
和 num2
是形参,当我们调用 add(3, 5)
时,3
和 5
作为实参传递给了函数。
在 JavaScript 中,基本数据类型(如 number
、string
、boolean
等)是按值传递的。这意味着当我们把一个基本数据类型的实参传递给函数时,函数内部接收到的是实参的一个副本,而不是实参本身。
function changeValue(num) {
num = num + 10;
return num;
}
let original = 5;
let newNum = changeValue(original);
console.log(original); // 输出 5,原始值没有改变
console.log(newNum); // 输出 15
在这个例子中,original
的值并没有因为函数内部对 num
的修改而改变,因为 num
只是 original
的一个副本。
对于对象和数组,JavaScript 是按引用传递的。这意味着当我们把一个对象或数组作为实参传递给函数时,函数内部接收到的是该对象或数组的引用,而不是副本。
function changeObject(obj) {
obj.name = 'New Name';
}
let myObject = { name: 'Old Name' };
changeObject(myObject);
console.log(myObject.name); // 输出 'New Name'
在这个例子中,函数内部对 obj
的修改实际上影响了 myObject
,因为它们指向同一个对象。
数据类型 | 传递方式 | 说明 |
---|---|---|
基本数据类型(如 number、string、boolean) | 按值传递 | 函数内部接收到的是实参的副本,修改不会影响原始值 |
对象和数组 | 按引用传递 | 函数内部接收到的是实参的引用,修改会影响原始对象或数组 |
通过对形参和实参传递规则的了解,我们可以更好地控制函数的行为,避免一些不必要的错误。在实际开发中,要时刻记住基本数据类型和引用类型的传递差异,这样才能让我们的 JavaScript 代码更加健壮和可靠。就像魔法师熟练掌握魔法道具的使用方法一样,我们也能熟练运用函数参数的传递规则,创造出更加精彩的代码魔法。
前端 - Javascript
整章节共299节
快分享给你的小伙伴吧 ~