前端/移动开发面试题更新 2026-08-05

在ES6中,箭头函数与普通函数之间有哪些主要差异?请从语法、this绑定、arguments对象、构造函数行为以及适合的使用场景等方面进行阐述。

前端/移动开发技术原理方案权衡JavaScript

考察说明

考查对ES6箭头函数核心特性的掌握,特别是与普通函数在this绑定和内部对象上的区别。

回答思路

  1. 【回答框架 1】箭头函数是ES6新增的函数定义语法,其核心特点是词法作用域的this绑定,即this继承自外层作用域,且无法通过call、apply、bind改变。普通函数的this则取决于调用方式。
  2. 【回答框架 2】箭头函数没有自己的arguments对象,只能使用外层函数的arguments,但可以使用剩余参数(...args)来获取参数列表。普通函数内部有自己的arguments对象。
  3. 【回答框架 3】箭头函数不能作为构造函数使用,不能new,也没有prototype属性。普通函数则可以。此外,箭头函数不能用作生成器函数。
  4. 【回答框架 4】在语法上,箭头函数更简洁,适合用作回调函数或函数式编程风格。但需要注意,在对象方法或需要动态this的场景中,应使用普通函数。
  5. 【关键点 1】箭头函数的this是词法绑定的,固定为定义时的外层this。
  6. 【关键点 2】箭头函数没有arguments、prototype,不能new。
  7. 【关键点 3】箭头函数适合用于回调,普通函数适合用作方法或构造函数。
  8. 【易错点 1】不要认为箭头函数的this总是绑定到全局,它取决于定义时的外层作用域。
  9. 【易错点 2】不要尝试用call或apply改变箭头函数的this,这不会生效。