简单类型(基本数据类型、值类型)
在存储时变量中存储的是值本身,包括string ,number,boolean,undefined,null
复杂数据类型(引用类型)
在存储时变量中存储的仅仅是地址(引用),通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等;
堆和栈
堆:
存的是复杂数据类型的地址 复杂数据类型的值 储存内容多,查询速度一般 和栈对比查询速度慢
栈:
存的是基本数据类型和基本数据类型的值 储存内容少,查询速度快 。
作为参数传递
基本数据类型在作为参数传递的时候 进去的就是值!!!!
function fn(a){
a=11;
}
var m = 10;
fn(m); // 基本数据类型在作为参数传递的时候 进去的就是值!!!!
console.log(m);
复杂数据类型在作为参数传递的时候 传进去的是地址
function fn(arg){
arg.name='李四'
}
var obj = {name:'张三'};
fn(obj); // 复杂数据类型在作为参数传递的时候 传进去的是地址
console.log(obj); // 李四!