📜  JavaScript |函数* 表达式(1)

📅  最后修改于: 2023-12-03 15:16:08.365000             🧑  作者: Mango

JavaScript 函数表达式

在 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 函数接收两个参数 namecallbackcallback 参数是一个函数,它被称为回调函数。在 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 中引入了箭头函数表达式,它可以更简洁地定义匿名函数。箭头函数表达式没有自己的 thisargumentssupernew.target,这些值都来自于函数定义环境的作用域。箭头函数的主要用途是简化函数表达式的语法。

例如:

const double = (num) => {
  return num * 2;
}

console.log(double(3)); // output: 6
总结

在 JavaScript 中,函数表达式提供了一种定义函数的方式,它可以像其他数据类型一样被传递和操作。函数作为一等公民可以作为参数传递到其他函数中,也可以从函数中返回。

箭头函数表达式是一种简洁的语法,可以更方便地定义匿名函数。