ECMA知识点

变量、作用域和内存问题

  • 变量
    基本类型值和引用类型值
  • 执行环境和作用域
    当代码在一个环境中执行时,会创建变量对象的一个作用域链(scope chain)
  • 作用域链
    保证对执行环境中有权访问的所有变量和函数的有序访问。
  • 垃圾收集
    标记清除、引用计数

引用类型

  • 引用类型
    引用类型的值(对象)是引用类型的一个实例。
    在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。
  • Object
    • 使用new操作符后跟Object构造函数
    • 对象字面量表示法
  • Function
    函数是对象。
    每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。
    函数名是一个指向函数对象的指针。
    • 函数声明语法
    • 函数表达式定义函数
    • Function构造函数
  • 函数声明提升
  • 函数内部属性
    • arguments
      类数组对象
    • arguments的属性callee
      该属性是一个指针,指向拥有这个arguments函数的对象。
    • this
      this引用的是函数执行的环境对象
  • apply和call
    每个函数都包含两个非继承而来的方法,用途:在特定的作用域中调用函数。
    扩充函数作用域
    参数形式不同,apply的参数是数组实例,或者arguments;call的参数必须逐个列举出来。

理解对象

  • 对象
    ECMA-262把对象定义为"无序属性的集合,其属性可以包含基本值、对象或者函数。"
  • 属性类型
    • 数据属性
    • 访问器属性
    • Object.defineProperty()
    • Object.definePropertys()
    • Object.getOwnPropertyDescriptor()

推荐阅读更多精彩内容