无标题文章

2017-02-22  本文已影响7人  凸小布

赋值(=)
左边的变量等于右边的变量
var a = 10;
内部细节:是把右边变量(空间中)存储的值复制一份放在左边变量(空间中)


值类型的赋值
赋值操作:是把右边变量(空间中)存储的值[具体的数据]复制一份放在左边变量(空间中)
特点:修改了其中一个变量对另外一个变量没有影响


引用类型的赋值
赋值操作:是把右边变量(空间中)存储的值[地址]复制一份放在左边变量(空间中)
特点:修改了其中的一个对象,对另外一个对象有影响

<script>
    var str1 = '让我掉下眼泪的,不止昨夜的酒';
    var str2 = str1;
    console.log(str2);
    console.log(str1 == str2); //true
    console.log(str1 === str2);//true

    // 尝试修改变量的值
    str1 = '让我依依不舍的,不止你的温柔';
    console.log(str1);
    console.log(str2);
    console.log(str1 == str2); //false

    var obj1 = {'name':'hello'};
    var obj2 = obj1;
    console.log(obj2);
    console.log(obj1 == obj2); //true
    console.log(obj1 === obj2);//true

    // 尝试修改变量的值
    obj1.name = 'world';
    obj1.age = 12;
    console.log(obj1);
    console.log(obj2);

    console.log(obj1 == obj2); //true
    console.log(obj1 === obj2);//true

    obj1 = {'name':'MT', 'sex':'normal'}; //该行代码切断了obj2和obj1的联系
    console.log(obj1);
    console.log(obj2);
    console.log(obj1 == obj2); //false
    console.log(obj1 === obj2);//false

    console.log(obj2.sex); //undefined

</script>

值类型的赋值

值类型的赋值

引用类型的赋值

引用类型的赋值
上一篇下一篇

猜你喜欢

热点阅读