js函数参数的传递与值的改变与数据的引入类型基本类型


  <script type="text/javascript">

        var bb = {n:1};//引用类型:Function,Array,Object

        (function (bb) {

            bb.n = 2;

            console.log(bb.n);

        })(bb)

        console.log(bb.n);

//输出2 2


        var foo = 1;  //基本类型string,number,boolean,null,undefined

        (function (foo) {

            foo = 2;

            console.log(foo);

        })(foo);

        console.log(foo)

    </script>

//输出2 1

这里是引用类型与基本类型的问题

1.基本类型所有的值存储在存区,js可以直接对值进行操作;而引用类型的所有值存储时,是堆内存中的,js不能直接操作值,只能擦操作属性改变值;


基本类型复制时原数据不受到影响,而引用类型则是通过复制指针,实现复制,但指针指向的是同一个对象,所以改变其中一个两个 都改变;