-
基础类型有哪些?复杂类型有哪些?有什么特征?
当我们讨论数据类型的时候,有六种数据类型,分别是String、Number、Boolean、Null、Undefined、Object,其中除了Object,其余的五种都是基本数据类型,而Object是复杂数据类型。
当我们讨论变量的值的时候,ECMAscript的变量可能包含两种不同类型的值:基本类型值和引用类型值。其中基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象
基本类型的值和引用类型的值的区别- 访问方式,基本类型的值可以直接在内存里操作,而引用类型的值不能在内存中访问到,操作的是对引用类型的值的引用
- 复制变量值,基本类型的值是创建一个没有关联的副本,而引用类型的值是创建一个引用,任何一个变量修改都会引起其他变量的变化
var obj1={
name: 'gqc'
}
,obj2=obj1;
obj2.name='jrg';
console.log(obj1.name)//"jrg"
- 如下代码的输出? 为什么?
var obj1 = {a:1, b:2};
var obj2 = {a:1, b:2};
console.log(obj1 == obj2);//false,因为引用的是不同的对象
console.log(obj1 = obj2);
console.log(obj1 == obj2);//true,引用的都是obj2的对象