理解值类型和引用类型

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

值类型

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

example:

1
2
3
4
5
6
7
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
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); // => 呵呵

文章目录
  1. 1. 理解值类型和引用类型
    1. 1.0.1. 值类型
    2. 1.0.2. 引用类型