版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
javaScript中值类型和引用类型
1.存储位置区别
- 值类型:存储在栈中
- 引用类型:对象在堆上存储,地址在栈上存储
2.类型之间传递区别
- 值类型之间传递:传递的是值
- 引用类型之间传递:传递的地址(引用)
- 值类型作为函数的参数,传递的是值
- 引用类型作为函数的参数,传递的是地址
3.举例说明
- 值类型
var num1 = 10;
var num2 = num1;
num1 = 20;
console.log(num1); //结果是20
console.log(num2); //结果是10
如图所示:
- 引用类型
function Person(name,age,salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
function f1(person) {
person.name = "ls";
person = new Person("aa",18,10);
}
var p = new Person("zs",18,1000);
console.log(p.name);
f1(p);
console.log(p.name);
如图所示: