本文档概述了 Airbnb JavaScript 风格指南中关于声明和使用 JavaScript 函数及箭头函数的约定和最佳实践。这些指南有助于在项目中保持代码的一致性、清晰性和质量。
Airbnb JavaScript 风格指南区分了传统函数和箭头函数,并为两者提供了具体的建议。两者各有不同的用途和适用的场景。
来源: README.md661-941 README.md943-1106
风格指南建议使用**命名函数表达式**而不是函数声明。
原因? 函数声明会被提升(hoisted),使得在文件定义之前就可以使用该函数。这可能导致可读性和可维护性问题。命名函数表达式提供更好的堆栈跟踪和自文档化代码。
来源: README.md664-683
IIFE 应被括号包围以提高清晰度。
来源: README.md686-696
if、while 等)中声明函数arguments (这会覆盖内置的)...)代替 arguments 对象来源: README.md699-719 README.md736-811 README.md843-885
切勿修改或重新赋值参数。
来源: README.md843-885
来源: README.md826-840 README.md908-939
箭头函数应用于匿名函数,尤其是在回调函数中。它们通过词法作用域绑定 this,这通常是期望的行为。
来源: README.md946-965
this 时来源: README.md946-965 README.md967-1009
如果函数体只包含一个没有副作用的表达式,则省略花括号并使用隐式返回。否则,保留花括号并使用 return 语句。
=> vs >=, <=)风格指南通过 ESLint 规则强制执行。关于函数和箭头函数的主要规则包括:
| 规则 | 目的 |
|---|---|
func-style | 强制使用函数表达式而非函数声明 |
func-names | 确保函数具有名称以获得更好的堆栈跟踪 |
wrap-iife | 强制 IIFE 的统一包装 |
no-loop-func | 防止在循环中定义函数 |
prefer-rest-params | 鼓励使用 rest 语法而非 arguments |
default-param-last | 要求默认参数放在最后 |
no-new-func | 防止使用 Function 构造函数 |
space-before-function-paren | 强制函数中的空格一致 |
no-param-reassign | 防止参数被修改和重新赋值 |
prefer-spread | 鼓励使用 spread 语法而非 .apply() |
prefer-arrow-callback | 鼓励使用箭头函数作为回调函数 |
arrow-spacing | 强制箭头函数箭头前后空格一致 |
arrow-parens | 强制箭头函数参数周围有括号 |
arrow-body-style | 控制箭头函数体中使用花括号的情况 |
no-confusing-arrow | 防止箭头语法与比较混淆 |
implicit-arrow-linebreak | 控制隐式返回时的换行 |
来源: README.md664 README.md799 README.md946 README.md967 README.md1034
arguments函数和箭头函数的指南与其他风格指南部分协同工作
函数和箭头函数的指南是 Airbnb JavaScript 风格指南编写干净、可维护的 JavaScript 代码方法中的关键部分。