📅  最后修改于: 2023-12-03 15:16:08.365000             🧑  作者: Mango
在 JavaScript 中,函数是第一类对象,这意味着函数可以像其他类型的数据一样被存储、传递和操作。函数表达式是一种定义函数的方式,它被赋值给一个变量,这个变量可以被当作函数来调用。
函数表达式的基本语法如下:
const funcName = function(params) {
// function body
}
其中,funcName
是函数的名称(可选),params
是函数的参数列表(也是可选的),function body
是函数的主体部分。
函数表达式可以被看做是一个匿名函数,因为它没有指定函数的名称。
由于函数是 JavaScript 中的一等公民,意味着可以将函数作为参数传递给其他函数,也可以从函数返回函数。
function greet(name, callback) {
// call the callback function
callback(name);
}
function sayHello(name) {
console.log(`Hello ${name}!`);
}
// pass sayHello as a callback function
greet('John', sayHello);
在上面的例子中, greet
函数接收两个参数 name
和 callback
。callback
参数是一个函数,它被称为回调函数。在 greet
函数内部,我们调用回调函数来打印 Hello
+ 名字。
function createCounter() {
let count = 0;
function increment() {
count++;
console.log(count);
}
return increment;
}
const counter = createCounter();
counter(); // output: 1
counter(); // output: 2
在上面的例子中,我们定义了一个 createCounter
函数,该函数返回另一个函数 increment
。在 increment
函数内部,我们增加 count
变量的值并将其打印到控制台。当 createCounter
被调用时,它将返回 increment
函数。我们可以通过调用 counter()
函数的方式调用该函数以增加计数器的值。
在 ES6 中引入了箭头函数表达式,它可以更简洁地定义匿名函数。箭头函数表达式没有自己的 this
,arguments
,super
和 new.target
,这些值都来自于函数定义环境的作用域。箭头函数的主要用途是简化函数表达式的语法。
例如:
const double = (num) => {
return num * 2;
}
console.log(double(3)); // output: 6
在 JavaScript 中,函数表达式提供了一种定义函数的方式,它可以像其他数据类型一样被传递和操作。函数作为一等公民可以作为参数传递到其他函数中,也可以从函数中返回。
箭头函数表达式是一种简洁的语法,可以更方便地定义匿名函数。