上一节我们深入学习了箭头函数,本节我们将探讨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, '+')); // 12. 立即执行函数表达式(IIFE)
/* 匿名函数立即执行,创建独立作用域 */
(function() {
const privateStr = "这是私有字符串";
console.log(privateStr); // 输出:这是私有字符串
})();
// 带参数的立即执行匿名函数
const result = (function(x, y) {
return x + y;
})(0, 1);
console.log(result); // 13. 回调函数形式
<!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中不可或缺的重要概念,它让函数可以像普通值一样被传递和使用,这种灵活性使得匿名函数活跃于各种编程场景。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程