一、类型与包装对象1、类型原始类型:numberstringbooleannullundefinedSymbol对象类型:ObjectArrayFunction原始类型(基本类型)和对象类型(引用类型)的区别:原始类型不能修改值,对象类型可以。 分析:原始类型存储在栈内存中,对象类型存储在堆内存中。原始类型的修改都是重新赋值。 即,声明一个原始类型,var a = 2;那么会在栈内存中开辟一块内存用于存储原始类型a,当重新赋值a = 234的时候,会重新开辟一块栈内存用于存储重新赋值的原始类型a,2则被垃圾回收机制回收。 至于对象类型,栈内存中存的是对象数据在堆内存中的首地址,也就是该数据的引用。在访问变量的时候就会去堆内存中找引用对象的值,修改的时候也是修改堆内存中的值。原始类型没有属性和方法,对象类型可以有null和undefined的区别:undefined表示一个未被赋值的栈内存的空间,null表示栈空间的引用没有指向一个地址进行显示类型转换时,null为0,undefined为NaNtypeof(null) === ‘object’ typeof(undefined) ===‘undefined’