当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JavaScript的引用赋值与传值赋值实例讲解

JavaScript的引用赋值与传值赋值实例讲解

2019年03月23日  | 移动技术网IT编程  | 我要评论

javascript的引用赋值与传值赋值实例讲解

<script>
    var arr1=[1,2];
    var arr2=arr1;
    arr2.push(3);
    console.log('arr1为:'+arr1);
    console.log('arr2为:'+arr2);
    var a=2;
    var b=a;
    b+=2;
    console.log('a为:'+a);
    console.log('b为:'+b);
</script>

输出结果为:

arr1为:1,2,3

arr2为:1,2,3

a为:2

b为:4

为什么arr1和arr2会相同,而a和b又不同呢?

原因是:

number,string类型都是基本类型,而基本类型存放在栈区,访问时按值访问,赋值是按照普通方式赋值;

对象和数组是通过引用来赋值的,所以改变arr1的同时arr2也会跟着改变;

那如何避免上述数组引用赋值的情况呢?

可以采用如下方法:

//数组(循环赋值)
var arr3=[];
for(var i=0;i<arr1.length;i++){
    arr3[i]=arr1[i];
}
arr1.push(3);
console.log('arr3为:'+arr3);
console.log('arr1为:'+arr1);

结果为:

arr3为:1,2

arr1为:1,2,3

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网