请注意,本文编写于 286 天前,最后修改于 162 天前,其中某些信息可能已经过时。
今日问题:箭头函数与普通函数的区别?
Q:如果在前端面试中,被问到箭头函数与普通函数的区别,怎么回答比较好,全面详细一点?
A:当被问到箭头函数与普通函数的区别时,你可以采取以下方式回答:
- 语法形式:
- 普通函数使用 function 关键字声明,例如:function add(a, b) { return a + b; }。
- 箭头函数使用箭头 => 定义函数,例如:(a, b) => a + b。
- this 指向:
- 普通函数中的 this 指向运行时的上下文,可以通过调用方式或者 bind()、apply()、call() 方法来改变。
- 箭头函数中的 this 指向在定义时所在的上下文,而不是调用时。箭头函数没有自己的 this,它继承了外围作用域中的 this 值。
- arguments 对象:
- 普通函数内部可使用 arguments 对象访问传入的参数。
- 箭头函数没有自己的 arguments 对象,但可以使用剩余参数 ...rest 来获取所有传入的参数。
- 构造函数:
- 普通函数可以作为构造函数使用,并通过 new 关键字来创建新的实例。
- 箭头函数不能被用作构造函数,使用 new 关键字会抛出错误。
- 绑定:
- 普通函数可以通过 bind()、apply()、call() 方法显式地绑定 this。
- 箭头函数无法通过这些方法改变 this 指向,它们始终保持其定义时的上下文。
- 返回值:
- 普通函数在单行情况下,需要使用 return 显示地返回值。
- 箭头函数在只有一条表达式的情况下,默认将其作为返回值,并且不需要显式地使用 return。
- 适用场景:
- 普通函数适用于需要动态 this 绑定、作为构造函数、使用 arguments 对象等情况。
- 箭头函数适用于简单的函数表达式,以及需要保持词法作用域 this 的情况下。
这样的回答可以展示你对 JavaScript 中函数的理解,并且可以提供一些具体的示例来说明这些区别。
本文作者:CreatorRay
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!