javascript函数
1 作用域
语句块不会创建新的作用域。 意味着if,for语句块中声明的变量在外部也可以使用。
声明变量时如果没有写var那么就在全局作用域创建此变量。
函数内的变量声明在函数声明时进行, 变量的初始化在函数执行时进行。 解释器在载入函数声明时,如果函数内部声明了局部变量,会先创建局部变量,但不会初始化。之后在函数被调用时才对其初始化。
var a =1 |
2 声明
function a() { |
3 匿名函数
function(){ |
4 自调函数
(function(){ |
5 私有函数
function a(param){ |
6 私有函数的优点
有助于确保全局名字空间的纯净性(这意味着命名冲突的机会很小)。
私有性 - 只将一些必要的函数暴露给“外面世界”,并保留属于自己的函数,使它们不为该应用程序的其他部分所用。
7 arguments对象
function doAdd() { |
8 回调函数
9 回调函数的优点:
- 它可以在不做命名的情况下传递函数(这意味着可以节省全局变量)。
- 可以将一个函数调用操作委托给另一个函数(这意味着可以节省一些代码编写工作)。
- 回调函数也有助于提升性能。(重要)
10 例子
Function add(a,b,c) { |
如上不使用回调,需要调用两次循环,效率低
如果使用回调,则
Function add(a,b,c, callback) { |
如上,可以看到只需要一次循环,效率高。