JavaScript3
1. 内存的分类:栈空间、堆空间
1. 栈空间:保存基本数据类型的数据(1. 定义一个变量 2. 赋值:字符串,数字,布尔类型,undefined,Null 3. 将数据保存到栈空间 4.变量指针指向该栈空间)
2. 堆空间:保存数组、对象等数据类型(1. 定义一个变量 2. 赋值:对象{name: 'xiaoming'} 3. 将数据保存到堆空间 4. 在栈空间也占用一块内存空间用来记录该堆空间的空间地址 5. 变量指针指向栈空间))

2. 基本数据和复杂数据作为参数时的区别
结论:基本类型数据作为参数时,相当于复制了一份栈空间中该数据,且变量名是函数中的临时变量a,对于变量a的修改不会影响到原变量。
复杂类型的数据作为参数时,相当于复制了一份栈空间中指向堆空间的存储地址,该存储位置指向堆空间中同一份数据,因此修改变量obj也会影响到原变量myObj。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 1. 将基本类型的数据传入函数中,
function test(a){
a++;
console.log(a); // 11
};
var num = 10;
test(num);
console.log(num); // 10
// 2. 复杂类型的数据作为参数.
function test2(obj){
obj.name = '小甜甜';
console.log(obj.name); // 小甜甜
};
var myObj = new Object();
myObj.name = '牛夫人';
test2(myObj);
console.log(myObj.name); // 小甜甜
</script>
</body>
</html>

浙公网安备 33010602011771号