JavaScript函数与定义的function关键字。
您可以使用函数声明或函数表达式 。
函数声明
在本教程的前面,你了解到函数的语法如下声明 :
function functionName ( parameters ) {
code to be executed
}
声明的函数不立即执行。 他们是“保存以备后用”,并且将在以后执行,当他们被调用(呼吁)。
分号用于分隔执行JavaScript语句。
由于函数声明不是可执行语句,它不是常见的以分号结束它。
函数表达式
一个JavaScript功能也可使用表达式定义。
函数表达式可以被存储在一个变量:
函数表达式已经被存储在一个变量之后,该变量可以作为一个功能:
上面的函数实际上是一个匿名函数 (没有名字的函数)。
存储在变量的函数不需要函数名。 他们总是调用(调用)使用变量名。
因为它是一个可执行语句的一部分,上面的函数以一个分号结束。
该Function()构造函数
正如你在前面的例子中所看到的,JavaScript函数与定义的function关键字。
函数也可以用内置的JavaScript函数构造器调用定义Function()
你其实不必使用函数构造函数。 上面的例子是一样的文字:
在大多数情况下,你可以尽量避免使用new JavaScript中的关键字。
Function Hoisting
在本教程早些时候,您了解了"hoisting" 。
起重是JavaScript的移动声明到当前范围的顶部的默认行为。
起重适用于变量声明和函数声明。
正因为如此,JavaScript函数可以在声明之前被调用:
myFunction(5);
function myFunction(y) {
return y * y;
}
使用表达式定义的函数不悬挂。
自调用函数
函数表达式可以做成“自我调用”。
一个自调用表达式自动调用(启动),没有被调用。
如果表达式后跟函数表达式将自动执行()
你不能自调用函数声明。
你必须添加周围功能括号以表明它是一个函数表达式:
上面的函数实际上是一个匿名的自调用函数 (没有名字的函数)。
函数可以用作值
JavaScript函数可以被用作值:
JavaScript函数可以在表达式中使用:
函数是对象
该typeof在JavaScript中运算符返回"function"的功能。
但是,JavaScript函数可以被描述为对象。
JavaScript函数同时拥有属性和方法 。
arguments.length属性返回被调用函数时收到的参数个数:
的toString()方法返回函数的字符串:
定义为一个对象的属性的函数,称为对象的方法。
旨在创建新的对象的函数,称为对象的构造函数。