原始数据类型: number,string,boolean,undefined, null,object
基本类型(简单类型),值类型: number,string,boolean
复杂类型(引用类型):object(使用typeof 判断的数组和对象返回的都是object)
空类型:undefined,null
1、 值类型的值在哪一块空间中存储?栈中存储
//值类型之间传递,传递的是值
//案例一
var num=10;
var num2=num;//传递的值
//案例二
function f1(x) {
x=100;
console.log(x);//undefined
}
var num=10;
f1(num);
console.log(num);//10
//var num=10;值类型,值在栈上;
并不传递地址,不改变地址的值,只是值得传递。注:函数里面的x是函数里面作用域里面的变量,此函数包含函数的变量名提升,所以打印的是undefined
2、引用类型的值在哪一块空间中存储?对象在堆上存储,地址在栈上存储
//引用类型之间传递,传递的是地址(引用)
var obj={
name:"小明"
};
function f2(obj2) {
obj2.name="小红";
}
console.log(obj.name);//小明
f2(obj);
console.log(obj.name);//小红
//var obj={};复杂类型,对象在堆,地址(引用)在栈(直接改变地址中的值)