函数声明
function functionName(parameters) {
要执行的代码
}
函数表达式(匿名函数)
var functionName = function(parameters) {
要执行的代码
}
//执行
functionName(parameters)
Function() 构造器
如您在之前的例子中看到的,JavaScript 函数是通过 function 关键词定义的。
函数也可以通过名为 Function() 的内建 JavaScript 函数构造器来定义。
var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);
函数提升
Hoisting 是 JavaScript 将声明移动到当前作用域顶端的默认行为。
Hoisting 应用于变量声明和函数声明。
正因如此,JavaScript 函数能够在声明之前被调用:
myFunction(5);
function myFunction(y) {
return y * y;
}
使用表达式定义的函数不会被提升。
自调用函数
函数表达式(匿名函数)可以作为“自调用”。函数定义的其中一种
自调用表达式是自动被调用(开始)的,在不进行调用的情况下。
函数表达式会自动执行,假如表达式后面跟着 ()。
您无法对函数声明进行自调用。
您需要在函数周围添加括号,以指示它是一个函数表达式:
实例
(function () {
var x = "Hello!!"; //我会调用我自己
})();
//
(function () {
var x = "Hello!!"; //我会调用我自己
})相当于返回一个函数指针
箭头函数
不需要 function 关键字、return 关键字和花括号
箭头函数没有自己的 this。它们不适合定义对象方法。
箭头函数未被提升。它们必须在使用前进行定义。
使用 const 比使用 var 更安全,因为函数表达式始终是常量值。
/ ES5
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
等价于
`如果函数是单个语句,则只能省略 return 关键字和大括号。因此,保留它们可能是一个好习惯:`
const x = (x, y) => {
return x * y;
}
网友评论