论JS函数传参时:值传递与引用传递的区别

时间:2020-8-1 作者:admin


大家都知道在计算机内存中js的数据类型分为基础数据类型和引用数据类型

基础数据类型

number / string / boolean / undefined / null这些都是基础数据类型
在计算机内存中分为栈和堆
基础数据类型在计算机中的存储情况如下图:
论JS函数传参时:值传递与引用传递的区别

栈空间相当于一本书的目录

引用数据类型

比如object / function/Array这些都是引用数据类型
引用数据类型在计算机内存中的存储方式如下图:
论JS函数传参时:值传递与引用传递的区别
堆空间相当于一本书写内容的地方

在函数传参时:
基础数据类型都是值传递
引用数据传递的只是引用类型数据的引用,相当于传递了目录,指向的还是原来的地址,因此在函数体里修改数组、对象、都会修改原数据。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。