- Use eslint and prettier, fix all warnings
- Follow style and naming conventions
- Respect 2 space indentation
- Add empty line for visual separation
- Don't change incoming parameters
- Decompose complex functions to single responsibility
- Use separation of concerns principle
- Prefer const, minimize let usage
- Remove unneeded operations, calls, arguments, blocks, etc.
- Prefer arrow functions
- Use round brackets even for single argument lambda functions
- Optimize loop invariant
- Optimize lexical scope, minimize area of identifier visibility
- Prefer
for
,for..of
, and.map()
, try to avoid.forEach()
- Use intermediate variables, decompose long expressions