JavaScript数据类型(值类型和引用类型对比)
-
javascript中变量类型分为值类型(基本数据类型)和引用类型
- 值类型: String(字符串),Number(数值),Boolean(布尔值),Undefined,Null
- 引用类型: Array(数组),object(对象),Function(函数)
-
值类型和引用类型的区别
-
存储位置不一样
- 值类型:栈内存
- 引用类型:把变量名储存在栈内存, 而变量的值存储在堆内存里面
var a = 10; var b = 20; console.log(a);//10 var arr = [10, 20]; console.log(arr); //[10, 20]
-
赋值方式不一样
-
值类型 :深复制 直接赋值
var a = 10;
console.log(a);
-
引用类型 : 浅复制 传递地址(引用) {} == new Object
var a = { age: 20 }; var b = a; b.age = 21; console.log(a.age)//21
-
-
引用类型可以添加方法,值类型不可以
var a = { age: 20 }; a.sex = "男"; console.log(a);//男 var b = 10; b.sex = "女"; console.log(b.sex);//undefined
-
引用类型是地址比较 ,而值类型是 值得比较
var a = "{}"; var b = "{}"; console.log(a == b); //true var a = {}; var b = {}; console.log(a == b);//false
-