MST

星途 面试题库

面试题:JavaScript 中高阶函数与箭头函数结合的优势

请阐述在 JavaScript 里,高阶函数与箭头函数结合使用会带来哪些优势,并举例说明。
48.3万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

优势

  1. 简洁性:箭头函数语法更加简洁,结合高阶函数使用时,代码行数减少,使代码整体更清晰易读。例如在数组的 map 方法中,使用箭头函数替代传统函数定义,无需 function 关键字和 return 关键字(隐式返回)。
  2. 词法作用域:箭头函数没有自己的 this 绑定,它会从包含它的作用域继承 this。在高阶函数的回调中,这种特性避免了传统函数中 this 指向不明确的问题,让代码逻辑更可预测。
  3. 减少样板代码:在高阶函数中使用箭头函数,减少了定义函数的样板代码,提高了代码编写效率,尤其在处理一些简单的回调逻辑时效果明显。

示例

  1. 简洁性示例
const numbers = [1, 2, 3, 4];
// 使用传统函数
const squared1 = numbers.map(function (num) {
    return num * num;
});
// 使用箭头函数与高阶函数 map 结合
const squared2 = numbers.map(num => num * num);
console.log(squared1); 
console.log(squared2); 
  1. 词法作用域示例
const person = {
    name: 'John',
    numbers: [1, 2, 3],
    printSquared: function () {
        // 使用箭头函数,this 指向 person 对象
        this.numbers.forEach(num => console.log(this.name + ' squared ' + num + ' is ' + num * num));
    }
};
person.printSquared(); 
  1. 减少样板代码示例
const numbers = [1, 2, 3, 4];
// 使用传统函数找出偶数
const evens1 = numbers.filter(function (num) {
    return num % 2 === 0;
});
// 使用箭头函数与高阶函数 filter 结合
const evens2 = numbers.filter(num => num % 2 === 0);
console.log(evens1); 
console.log(evens2);