如何声明一个函数
JavaScript有五种方法声明一个函数
1. function命令
function
声明的代码区块,就是一个函数。function
后面是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。
function f(x,y){ return x+y}复制代码
2,3. 函数表达式
除了
function
命令声明函数,还可以采用变量赋值的方法
变量赋值声明函数,有两种方法,一种是匿名函数赋值,一种是具名函数赋值。
(1)匿名函数赋值var a = function(x,y){ return x+y}复制代码
这种写法将一个匿名函数赋值给一个变量。这是,这个匿名函数又称函数表达式,因为赋值语句的右侧只能放表达式。
(2)具名函数赋值
采用函数表达式声明函数时,function
命令后面不带有函数名。如果加上函数名,该函数名只在函数体内部有效,在函数体外部无效。
var a = function b(x,y){ return x+y}复制代码
上面代码在函数表达式中加入了函数名b
,这个b
只能在函数体内部使用,其他地方都不可用。
- 可以在函数体内部调用自身
- 方便除错。除错工具显示函数调用栈时,将显示函数名,而不再显示这里是一个匿名函数。
4. Function 构造函数
var a = new Function('x','y','return x+y')复制代码
- 上面代码中,
Function
构造函数接受三个参数,除了最后一个参数是a
函数的函数体,其他参数都是a
函数的参数。 - 你可以传递任意数量的参数给
Function
构造函数,只有最后一个参数会被当成函数体,如果只有一个参数,该参数就是函数体。 Funciton
构造函数可以不使用new
命令,返回结果完全一样。
5. 箭头函数
箭头函数其实就是函数表达式方法中,匿名函数赋值的省略版本。
var f = (x,y) => { return x+y}// 等于var f = function(x,y){ return x+y}复制代码
如果箭头函数的代码块部分只有一句,则可以省略return
和大括号。注意,必须同时省略。
var f = (x,y) => x+y复制代码
如果箭头函数的参数只有一个,则可以省略圆括号。
var f = x => x*x复制代码
函数的name属性
函数的name属性返回函数的名字