版权声明:本文为博主原创文章,未经博主允许不得转载。如有问题,欢迎指正。 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>