关于值传递和引用传递的一些小笔记

js的基础知识整理

       JavaScript的5种基本类型:(值传递)
                 Boolean,null,undefined,string,number  赋值都是通过值传递的方法进行的,(当把其中的一个变量的值赋给另外一个变量的时候,实际上就跟拷贝是一样的,拷贝的变量相当于源变量的一个副本,之后两值的增删减毫无影响)
       3种特殊类型:(引用传递)
               Function、Array、Object  本质上都属于对象,都是通过引用来传递(变量的值相当于存放该值的内存地址,赋值的(=)相当于一个指针,所以当两个变量指向了同一个内存地址的时候,互相的增删改是会影响各自的值的)
          
          来个粗糙的比喻,比如有一个变量a,它指向的空间是101房,还有一个变量b,把a的空间赋给b,这时,相当于,a,b同时指向了101房,不管是a,还是b,只要它们其中一个对101房进行一些改动,101房就已经发生了变化,所以a,b的值发生了变化。
        
          对象的变量赋值只会把地址传递过去 (如果其中一个变量改变值的时候,原先指向同一个空间的对象将不受影响,因为重新赋值的时候,该对象的地址已经发生改变了,就是两值指向的空间已经不一样了)
 
  参考文章:https://blog.fundebug.com/2017/08/09/explain_value_reference_in_js/
posted @ 2017-08-09 15:21  零浪  阅读(127)  评论(1编辑  收藏  举报