JavaScript 函数介绍
函数是 JavaScript 的基本组件,一个函数包含了一段代码执行的过程。可以使用函数声明或函数表达式定义函数。
函数是 JavaScript 的基本组件,一个函数包含了一段代码执行的过程。可以使用函数声明或函数表达式定义函数。
函数声明
函数声明语法:
function functionName(parameters) {
// some code
}
声明的函数不会立即执行。它们被“保存以备后用”,并将在稍后被调用(调用)时执行。
function myFunction(a, b) {
return a * b;
}
函数表达式
JavaScript 函数也可以使用函数表达式来定义。
函数表达式可以直接赋值给变量:
const x = function (a, b) {
return a * b;
};
赋值为函数的变量是可以直接执行的:
const x = function (a, b) {
return a * b;
};
let z = x(4, 3);
上面的函数实际上是一个匿名函数(一个没有名字的函数)。
存储在变量中的函数不需要函数名。它们总是使用变量名来调用。
Function() 构造函数
正如您在前面的示例中看到的,JavaScript 函数是使用 function
关键字定义的。
函数也可以用 JavaScript 内置的构造函数 Function()
来定义。
const myFunction = new Function("a", "b", "return a * b");
let x = myFunction(4, 3);
大多数情况下,应该避免在 JavaScript 中使用 new
关键字。
函数提升
在本教程的前面的 JavaScript 提升部分,介绍了提升。提升是将声明移动到当前作用域顶部的默认行为。
提升同样适用于函数声明。
因此,可以在声明之前调用 JavaScript 函数:
myFunction(5);
function myFunction(y) {
return y * y;
}
使用表达式定义的函数不会被提升。
自执行函数
JavaScript 函数可以在定义后立即执行。就像下面一样:
(function () {
let x = "Hello!!";
})();
上面的函数实际上是一个自执行匿名函数。
自执行函数也可以有参数:
(function (a, b) {
return a + b;
})(3, 4);
函数是对象
typeof
JavaScript 中的运算符为函数返回 "function"
。
JavaScript 函数是一个特殊的对象,同时具有属性和方法。
arguments.length
属性返回调用函数时收到的参数数量:
function myFunction(a, b) {
return arguments.length;
}
toString()
方法将函数作为字符串返回:
function myFunction(a, b) {
return a * b;
}
let text = myFunction.toString();
箭头函数
JavaScript 箭头函数在 ES6 中引入,它的语法比函数表达式更简洁。
// ES5
var x = function (x, y) {
return x * y;
};
// ES6
const x = (x, y) => x * y;
如果箭头函数只有一个 return 语句,那么 return
关键字和大括号 {}
可以省略,否则不能省略。
// ES5
var x = function (x, y) {
console.log(x, y);
return x * y;
};
// ES6
const x = (x, y) => {
console.log(x, y);
return x * y;
};
IE11 或更早版本不支持箭头函数。
目录
-
JavaScript 函数参数
JavaScript 通过函数参数将数据传递到函数内部,JavaScript 的函数参数数量是灵活的,参数的类型是不受限制的。 -
JavaScript 函数调用
定义了 JavaScript 函数后,函数代码并不会自动执行,需要调用函数才能执行函数中的代码。 -
JavaScript call() 函数
JavaScript call() 方法是 Function 对象的一个方法,通过 call() 调用函数可以指定函数内部 this 的值,这让函数/方法能在更多的场景下正确执行。 -
JavaScript apply() 函数
-
JavaScript 闭包
JavaScript 闭包可以让一个内层函数访问到外层函数的作用域,让内层函数可以使用外层函数中定义的变量。