乐趣区

JS重要知识点记录

一、类型与包装对象
1、类型
原始类型:

number
string
boolean
null
undefined
Symbol

对象类型:

Object
Array
Function

原始类型(基本类型)和对象类型(引用类型)的区别:
原始类型不能修改值,对象类型可以。分析:原始类型存储在栈内存中,对象类型存储在堆内存中。原始类型的修改都是重新赋值。即,声明一个原始类型,var a = 2; 那么会在栈内存中开辟一块内存用于存储原始类型 a,当重新赋值 a = 234 的时候,会重新开辟一块栈内存用于存储重新赋值的原始类型 a,2 则被垃圾回收机制回收。至于对象类型,栈内存中存的是对象数据在堆内存中的首地址,也就是该数据的引用。在访问变量的时候就会去堆内存中找引用对象的值,修改的时候也是修改堆内存中的值。

原始类型没有属性和方法,对象类型可以有
null 和 undefined 的区别:

undefined 表示一个未被赋值的栈内存的空间,null 表示栈空间的引用没有指向一个地址
进行显示类型转换时,null 为 0,undefined 为 NaN
typeof(null) === ‘object’ typeof(undefined) ===’undefined’

退出移动版