1、ECMAScipt包含2种数据类型,基本数据类型和引用数据类型
2、基本类型的复制,是直接复制变量,形成2个独立的值,互不影响
3、引用类型的复制,复制一个指针指向对象,导致2个指针指向同一个对象,所以一个变量改变会导致另一个对象的变化
var obj1=new object(); var obj2=obj1; obj1.name="AA"; alert(obj2.name); //"AA"
4、传递函数
function addTen(num) { num+=10; return num; } var count=20; var result=addTen(count); alert(count); //20; 没有变化 alert(result); //30
5、 基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中
6、确定一个值是哪种基本类型可以用typeof操作符,而确定一个值是哪种引用类型可以使用instanceof操作
7、执行环境有全局执行环境和函数执行环境之分。
8、函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问其包含(父)环境,乃至全局环境
9、全局环境只能访问全局环境中定义的变量和函数,不能直接访问局部环境中的任何数据。
10、离开作用域的值将被自动标记为可回收。因此将在垃圾收集期间被删除。
11、“标记清除”是最主流的垃圾收集算法,将当前不使用的值加上标记,然后再回收其内存
12、“引用计数”跟踪记录所有值被引用的次数,在代码中有循环引用现象时,这种算法就会出现问题