理解JavaScript中值类型和引用类型

理解值类型和引用类型

在JavaScript中进行数据操作的时候可以将其划分为值类型和引用类型

值类型

值类型即按值传递的数据类型
包括:string、number、boolean、null、undefined
特点:值类型的名和值存储在同一内存空间中
在值类型进行赋值的时候,其实是将其进行了复制(副本)并赋值
当再改变原始值时不会改变其副本的值

example:

 var str1 = 'haha';
 var str2 = str1;
 console.log(str1);  // => haha
 console.log(str2);  // => haha
 str1 = 'hehe';
 console.log(str1);  // => hehe
 console.log(str2);  // => haha
引用类型

引用类型即按照引用进行传递的数据
包括:对象、数组、函数
特点:引用类型的名和值分别存储在不同的内存空间,通过引用地址(指针)进行连接
在引用类型进行赋值的时候,其实是对引用地址进行了赋值
即所有的赋值操作,就是对指向同一块内存空间的引用地址进行复制并赋值
当改变原始值时,所进行赋值的所有变量的值都会改变

exmple:

var obj1 = {
    myName : '哈哈',
    age : 22
};
var obj2 = obj1;
var obj3 = obj2;
console.log(obj1.myName);  // => 哈哈
console.log(obj2.myName);  // => 哈哈
console.log(obj3.myName);  // => 哈哈
obj2.myName = '呵呵';
console.log(obj1.myName);  // => 呵呵
console.log(obj2.myName);  // => 呵呵
console.log(obj3.myName);  // => 呵呵

https://github.com/PaddyWang/summarize

posted @ 2016-03-26 23:57  PaddyWang  阅读(179)  评论(0编辑  收藏  举报