区别:赋值语句中的区别
    基本数据类型:只传值

    1. var a = 10;
    2. var b = a;
    3. console.log(b);
    4. b = 20;
    5. console.log(a)

    引用数据类型既传值也传地址

    1. var obj={name:"lisi"};
    2. var str=obj; //引用类型赋值计算的时候传递的是引用或者说指针
    3. console.log(str);//{name: "lisi"}
    4. str.age=18;
    5. console.log(obj);//{name: "lisi", age: 18}
    1. /*
    2. 1.如果生明一个引用数据类型,那么占了两块空间
    3. 变量存在栈中
    4. 生成的实际对象存在堆中
    5. 栈内存中的变量存的是一个引用(指针,地址),指向堆内存中的实际对象
    6. */
    7. /* 2.发生了赋值运算
    8. 实际上是将地址的值给了sum,那么这个指针也是指向了堆内存中的同一个
    9. */
    10. var arr=[1,2,3];
    11. var sum=arr;
    12. console.log(sum);//[1,2,3]
    13. arr.push(4);
    14. console.log(sum);//[1,2,3,4]