1.变量
1.1 变量的值可能有两种类型——基本类型和引用类型,基本类型包括:
String
、Number
、Boolean
、null
、undefined
;引用类型就是Object
,包含多个基本类型的对象。
基本类型是按值访问的,可以操作保存在变量中的实际的值,而引用类型不同,引用类型的值是保存在内存当中的对象,
Javascript
不允许直接访问内存当中的位置,也就是不能直接操作对象的内存空间,在操作对象的是时候实际上使操作的对象的引用而不是实际的对象,因此引用类型的值是按照引用访问的
1.2 在
JavaScript
的函数当中,所有的参数都是按值传递的,也就是说把函数外部的值赋值给函数内部的参数,就和把值从一个变量复制到另一个变量一样,参数实际上就是函数的变量.
1.3 类型检测
- 基本类型: 用
typeof
操作符;- 引用类型: 用
instanceof
操作符;
- 语法:
person instanceof Object // true
2. 执行环境和作用域
在JavaScript当中分两种作用域——全局作用域和局部作用域(函数作用域);
摘自《JavaScript高级程序设计》
执行环境是JavaScript当中最为重要的一个概念.执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为.每个执行环境都有一个与之相关联的变量对象
,环境当中定义的所有变量和函数都保存在这个对象当中,全局执行环境就是最外围的一个环境,每个函数在执行的时候也都有自己的环境.
3. 内存
标记清除与引用计数,现在一般用的都是标记清除.