Javascript第六章基本数据类型和引用数据类型第三课

版权声明:本文为博主原创文章,未经博主允许不得转载。如有问题,欢迎指正。 https://blog.csdn.net/qq_30225725/article/details/89307782

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript">
		/*var a=5;
		var b=a; //将a的值复制一份给b
		b=8;
		console.log(a);
		console.log(b);*/

		function Student(name,age,salary){
			this.name=name;
			this.age=age;
			this.salary=salary;
		}
		var stu1;
		stu1=new Student("tom",24,6600);
		var stu2=stu1; //将stu1的地址赋给stu2,即让stu2和stu1指向同一个内存地址空间
		stu2.name="jack";
		console.log(stu1.name);
		console.log(stu2.name);

		/*
			JavaScript中将内存分为两种类型:栈内存、堆内存
			1.栈内存
			基本数据类型的变量和引用数据类型变量的引用,会存储在栈内存中
			存取速度较快

			2.堆内存
			引用数据类型的变量,会存储在堆内存中
			存取速度较慢
			注:在创建引用数据类型变量时,首先会在栈内存上为其引用分配一块空间,而其具体数据会存储在堆内存中,然后由栈上的引用指向堆中的地址。即引用变量的引用是存储在栈中,真实数据是存储在堆中
		*/
	</script>
</head>
<body>
	
</body>
</html>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript">
		//将基本数据类型作为方法的参数,不会影响外部变量
		/*function fn1(a){
			a=100;
		}
		var x=5;
		fn1(x); //传递的是数值,按值传递
		console.log(x); //x的值不变*/


		//将引用数据类型作为的参数,会影响外部变量
		/*function Student(name,age,salary){
			this.name=name;
			this.age=age;
			this.salary=salary;
		}
		function fn2(stu){
			stu.name="alice";
			stu.age=30;
			stu.salary=8000;
		}
		var stu1=new Student("tom",24,6600);
		fn2(stu1); //传递的是地址,按引用传递
		console.log(stu1);*/


		function fn3(array){
			array[0]=666;
		}
		var nums=[12,3,42,56,2];
		fn3(nums);
		console.log(nums);
	</script>
</head>
<body>
	
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_30225725/article/details/89307782