资讯专栏INFORMATION COLUMN

Javascript - 函数里传的是值还是引用?

JerryZou / 3073人阅读

摘要:说明一下里函数传的是值还是引用答案是都传。如果传入的参数是简单类型,如和,那么传入的就是值。如果是对象和数组,在函数里做的操作就会影响到函数外边。举几个栗子结语提问和纠错请留言。

说明一下

JavaScript里函数传的是值还是引用?答案是都传。如果传入的参数是简单类型,如String和Number,那么传入的就是值。但如果你传入的是Object和Array,那么就是引用。

这就意味着,在函数里怎么处理简单类型,都不会影响到函数外。如果是对象和数组,在函数里做的操作就会影响到函数外边。

举几个栗子 Number
function foo(num){
  num++;
}

var x = 0;

foo(x);

console.log(x); // 0
String
function foo(str){
  str+="b";
}

var x = "a";

foo(x);

console.log(x); // "a"
Array
function foo(arr){
  arr[1]++;
}

var x = [0, 1, 2];

foo(x);

console.log(x); // [0, 2, 2]
Object
function foo(o){
  o.num++;
}

var x = {
  num: 0
};

foo(x);

console.log(x); // Object {num: 1}
结语

提问和纠错请留言。
相关: http://tech.pro/blog/6589/arguments-passed-value-reference-javascript

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85542.html

相关文章

  • 是值还是引用? 构造字典数组的一个bug

    摘要:在做数据处理的时候碰到一个奇怪的现象大兴大兴大兴大兴大兴大兴大兴发现这个列表里的每个元素都是一样的检查循环里的和一切正常循环里的就不太正常朝阳海淀海淀昌平昌平昌平丰台丰台丰台丰台西城西城西城西城西城部分数据是这样的发生了的操作但列表里所有元 在做数据处理的时候, 碰到一个奇怪的现象. for tuple in list.most_common(): dict[name] = t...

    dockerclub 评论0 收藏0
  • 深入理解javascript按值传递与按引用传递

    摘要:引用类型参数的传递与引用类型的复制一样,传递的是内存地址。指向一个新的地址,与不再指向同一个地址官方解释来一发中所有函数的参数都是按值传递的。总结很简单,函数参数都是按值传递都是栈内数据的拷贝。 基本类型与引用类型 值类型(基本类型):String,Number,Boolean,Null,Undefined。 引用类型:Array、Object、Function、Date等有多个值...

    陈江龙 评论0 收藏0
  • 深入理解javascript按值传递与按引用传递

    摘要:引用类型参数的传递与引用类型的复制一样,传递的是内存地址。指向一个新的地址,与不再指向同一个地址官方解释来一发中所有函数的参数都是按值传递的。总结很简单,函数参数都是按值传递都是栈内数据的拷贝。 基本类型与引用类型 值类型(基本类型):String,Number,Boolean,Null,Undefined。 引用类型:Array、Object、Function、Date等有多个值...

    hedzr 评论0 收藏0
  • JS中对内存的一些了解

    摘要:中对内存的一些了解在进行开发的过程中了解内存机制有助于开发人员能够清晰的认识到自己写的代码在执行的过程中发生过什么也能够提高项目的代码质量内存是怎么样的中变量存放有着原始值与引用值之分原始值原始的数据类型以及新加入的引用值等类型的值便是引用 JS中对内存的一些了解 在JS进行开发的过程中, 了解JS内存机制有助于开发人员能够清晰的认识到自己写的代码在执行的过程中发生过什么, 也能够提高...

    elliott_hu 评论0 收藏0

发表评论

0条评论

JerryZou

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<