如何通过实例掌握JavaScript函数参数传递的细节?

更新于
2026-10-03 02:02:07
1阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2226个文字,预计阅读时间需要9分钟。

首先,我们来看一道JS的笔试题:

javascriptvar setObj=function(o) { o.name=xiaoming; o={}; o.name=xiaohong;};var p={name: xixi, age: 24};setObj(p);console.log(p);

答案是:{name: xiaohong, age: 24}。

解析:在JavaScript中,函数参数默认为引用类型。在`setObj`函数中,虽然`o`被重新赋值为一个空对象,但由于`p`是按引用传递给`setObj`的,所以`p`的引用并没有改变,它仍然指向原来的对象。因此,`p`的`name`属性被修改为`xiaohong`。

先看一道JS的笔试题:

var setObj=function(o){ o.name="xiaoming"; o={}; o.name="xiaohong"; } var p={name:"xixi",age:24}; setObj(p); console.log(p);

答案是{name:xiaoming,age24};

在JavaScript中函数参数默认为引用类型。

一.函数传递值类型:

代码实例如下:

function addNum(num){  num+=10;  return num; } var num=10; var result=addNum(num); console.log(num); console.log(result);

以上代码的弹出值分别为:10和20,下面进行一下分析:

声明变量num并复制为10,这个是num是一个值类型,当为函数传递参数的时候,是将此值复制一份传递给函数,所以在函数执行之后,num本身的值并没有被改变,函数中被改变的值仅仅是一个副本而已。

阅读全文
标签:传递先看

本文共计2226个文字,预计阅读时间需要9分钟。

首先,我们来看一道JS的笔试题:

javascriptvar setObj=function(o) { o.name=xiaoming; o={}; o.name=xiaohong;};var p={name: xixi, age: 24};setObj(p);console.log(p);

答案是:{name: xiaohong, age: 24}。

解析:在JavaScript中,函数参数默认为引用类型。在`setObj`函数中,虽然`o`被重新赋值为一个空对象,但由于`p`是按引用传递给`setObj`的,所以`p`的引用并没有改变,它仍然指向原来的对象。因此,`p`的`name`属性被修改为`xiaohong`。

先看一道JS的笔试题:

var setObj=function(o){ o.name="xiaoming"; o={}; o.name="xiaohong"; } var p={name:"xixi",age:24}; setObj(p); console.log(p);

答案是{name:xiaoming,age24};

在JavaScript中函数参数默认为引用类型。

一.函数传递值类型:

代码实例如下:

function addNum(num){  num+=10;  return num; } var num=10; var result=addNum(num); console.log(num); console.log(result);

以上代码的弹出值分别为:10和20,下面进行一下分析:

声明变量num并复制为10,这个是num是一个值类型,当为函数传递参数的时候,是将此值复制一份传递给函数,所以在函数执行之后,num本身的值并没有被改变,函数中被改变的值仅仅是一个副本而已。

阅读全文
标签:传递先看