什么是引用类型?什么是值类型?
值类型:是指在内存栈中 直接存储数据的本身; 常见的数据类型:string,boolean,number,null,undefined
引用类型:是指在内存栈中存储的是数据的内存地址 指向了堆中复杂的数据类型
//值类型 :存储在栈中,存储的是值得本身
var str='ab';
var str1=str;
str1='bb';
console.log(str)//ab
console.log(str1)//bb
//引用类型:在栈中存储的是地址,地址指向堆中
var obj={
name:'张三',
age:16,
sex:'男'
}
//obj存储在栈中的一个地址 指向堆中
//把obj在栈中的地址赋给了obj1
//obj1重新赋值 直接改变了在堆中存储的属性name,所以obj的name值也发生了改变
var obj1=obj;
obj1.name='小明';
console.log(obj.name);//小明
console.log(obj1.name);//小明
将值类型作为参数传递进入函数中改变后 并不会改变值本身;
但是引用类型当做参数传递时候,传递的是内存地址,所有会改变初始的数据