ECMAScript
-
变量,ECMAScript包含两种数据类型的值:基本类型值和引用类型值,在将一个值赋给变量时,解析器必须确定这个值是基本类型还是引用类型。
- Undefined、Null、String、Number、Boolean都是按值访问,可以操作保存在变量中的实际值。(栈内存)
引用类型的值保存在内存中(堆内存),操作对象时,实际操作的是对象的引用。
-
基本类型复制变量值
引用类型复制变量值
参数传递,javascript中都是按照
值传递
,在向参数传递基本类型时,传递的值会被复制一个给局部变量;在向参数传递引用类型时,传递的值会被复制一个引用给局部变量(引用类型的值包含的并不是对象本身而是指向对象的一个指针)类型检测
typeof检测基本数据类型,instanceof检测引用类型。检测数组类型Array.isArray()
javascript中分为全局环境和局部环境,并且没有块级作用域,使用var声明的变量被分配到最近的环境中,垃圾收集采用标记清除法,即当前不使用的值加上标记,然后回收其内存(不用的对象置null解除引用)。