登录
首页 >  文章 >  前端

JavaScript 函数参数与实参:传递原始类型和非原始类型变量的区别是什么?

时间:2024-10-26 11:04:04 297浏览 收藏

最近发现不少小伙伴都对文章很感兴趣,所以今天继续给大家介绍文章相关的知识,本文《JavaScript 函数参数与实参:传递原始类型和非原始类型变量的区别是什么?》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

JavaScript 函数参数与实参:传递原始类型和非原始类型变量的区别是什么?

函数参数和实参的关系

当我们传递变量值给函数时,会遇到关于函数参数和实参之间关系的问题。在 javascript 中,函数实参与形参的关系取决于所传递变量的类型。

传递原始类型变量

在传递原始类型变量(如字符串、数字、布尔值)时,形参得到的是实参值的副本。这意味着对形参的任何修改都不会影响实参。例如:

function changenum(num) {
  num = 10;
  console.log("num:", num); // 输出: 10
}

const x = 5;
changenum(x);
console.log("x:", x); // 输出: 5

传递非原始类型变量

当传递非原始类型变量(如数组、对象)时,形参得到的不是值的副本,而是对原对象的引用。这意味着对形参的任何修改都会影响实参。例如:

function changeArray(array) {
  array[0] = 10;
  console.log("array:", array); // 输出: [10, 2, 3]
}

const a = [1, 2, 3];
changeArray(a);
console.log("a:", a); // 输出: [10, 2, 3]

在上面的示例中,当我们调用 changearray 函数时,变量 a 的值被传递给 array 参数。array 参数得到的不是 a 值的副本,而是对 a 数组的引用。因此,对 array 的修改也影响了 a 数组。

因此,了解函数参数和实参之间的关系对于正确地处理变量至关重要。在传递原始类型变量时,不需要担心对实参的影响,但是在传递非原始类型变量时,应该意识到对形参的修改也会修改实参。

今天关于《JavaScript 函数参数与实参:传递原始类型和非原始类型变量的区别是什么?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>