js学习笔记8

  1.   函数声明: js 引擎会有一个 函数声明提升的操作,因为函数声明提升的特性 可以把函数声明放在调用之后。可以先调用后声明。
  2.   创建一个函数并将它赋值给变量 functionName 。这种情况下创建的函数叫做匿名函数因为 function 关键字后面没有标识符。 匿名函数的 name 属性是空字符串。
  3.   函数表达式在使用前必须先赋值
  4.   能够创建函数在赋值给变量,也就能把函数胡作为其他函数的返回值返回。
  5.   递归函数是一个函数通过名字调用自身的情况构成的。 使用 arguments.callee() 方法可以消除耦合
  6.   闭包是指有权访问另一个函数作用域中的变量的函数。 即在函数内部创建另一个函数。
  7.   当某个函数被调用时会创建一个执行环境及相应的作用域链,为读取和写入变量的值就需要在作用域链中查找变量。
  8.   变量对象:后台的每个执行环境都有一个表示变量的对象。 作用域链本质上是指向变量对象的指针列表。
  9.   一般,当函数执行完毕后,局部活动对象会被销毁。内存中仅保存全局作用域,但是闭包函数会将外部函数的活动对象添加到它的作用域链中,所以外部函数执行结束之后,他的作用域链会销毁但是活动对象仍在内存中,知道闭包函数销毁。
  10.   闭包只能取得包含函数中任何变量的最后一个值,因为闭包保存的是整个变量对象,而不是某个特殊的变量。
  11.    this 对象是在运行时基于函数的执行环境绑定的。
  12.   闭包函数的执行环境具有全局性,因此闭包函数的 this 指向 window

猜你喜欢

转载自www.cnblogs.com/dengsheng/p/10720125.html