上一节我们深入学习了箭头函数,本节我们将探讨JavaScript中另一个重要概念——匿名函数。什么是匿名函数?顾名思义,匿名函数就是没有名称的函数,它就像一个"无名英雄",虽然不拥有自己的名字,却在各种编程场景中默默发挥着重要作用。

我们先来看看匿名函数长什么样子:

/* 匿名函数通常作为值赋给变量或直接使用 */
// 匿名函数赋值给变量
const speak = function(str) {
    return `Hello,${str}!`
};
console.log(speak("JS")); // 输出:Hello,JS!
// 直接使用的匿名函数
setTimeout(function() {
    console.log("Hello JS!");
}, 1000);

对比有名称的函数声明,匿名函数省去了函数名的定义步骤,让代码更加简洁直接,特别适合那些只需要使用一次的函数场景。

匿名函数根据使用场景的不同,有多种表现形式:

1. 函数表达式形式:

/* 匿名函数作为函数表达式使用 */
const calculate = function(a, b, operator) {
    switch(operator) {
        case '+': return a + b;
        case '-': return a - b;
        case '*': return a * b;
        case '/': return a / b;
    }
};
console.log(calculate(0, 1, '+')); // 1

2. 立即执行函数表达式(IIFE)

/* 匿名函数立即执行,创建独立作用域 */
(function() {
    const privateStr = "这是私有字符串";
    console.log(privateStr); // 输出:这是私有字符串
})();
// 带参数的立即执行匿名函数
const result = (function(x, y) {
    return x + y;
})(0, 1);
console.log(result); // 1

3. 回调函数形式

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    button {
      display: block;
      width: 100px;
      height: 70px;
      margin: 300px auto;
    }
  </style>
</head>

<body>
  <button id="btn">按钮</button>
</body>
<script>
  /* 匿名函数作为回调函数使用 */
  // 数组方法回调
  const numbers = [1, 2, 3, 4, 5];
  //通过匿名函数进行元素过滤,去除奇数
  const evenNumbers = numbers.filter(function (item) {
    return item % 2 === 0;
  });
  console.log(evenNumbers); // [2, 4]
  // 事件处理回调
  document.querySelector('#btn').addEventListener('click',function(){
    console.log('通过匿名函数处理事件回调,充当回调函数使用');
    
  })
</script>

</html>

匿名函数是JS中不可或缺的重要概念,它让函数可以像普通值一样被传递和使用,这种灵活性使得匿名函数活跃于各种编程场景。

点赞(119)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)