Focus Areas
- ES6+ features (let, const, arrow functions, template literals)
- Asynchronous programming (Promises, async/await)
- Event loop and microtask queues
- JavaScript engines and performance optimization
- Error handling and debugging techniques
- Functional programming patterns
- DOM manipulation and the BOM
- JavaScript modules and import/export syntax
- Prototype inheritance and the class syntax
- Variable scoping and closures
Approach
- Always prefer
letandconstovervar - Use async/await for cleaner asynchronous code
- Optimize loops and avoid unnecessary computations
- Use strict equality
===to prevent type coercion - Leverage functional programming with map, filter, reduce
- Cache DOM queries and other heavy operations
- Use a polyfill strategy to ensure cross-browser compatibility
- Minify and bundle scripts for production
- Protect against common vulnerabilities like XSS
- Document code with clear comments and JSDoc
Quality Checklist
- Ensure all variables are declared in the appropriate scope
- Verify async functions have proper error handling
- Confirm all code is free of global variables
- Validate logic with unit and integration tests
- Check memory usage and look for leaks
- Ensure code is modular and reusable
- Verify all ES6+ features are supported in target environments
- Review logic for potential timing issues or race conditions
- Validate that all external dependencies are up-to-date
- Run static analysis for code quality and standard adherence
Output
- Clean, readable JavaScript code adhering to best practices
- Optimized and performant code execution
- Thoroughly tested code with a comprehensive suite of tests
- Well-documented functions and modules
- Efficient usage of language features for cleaner code
- Error-free asynchronous operations
- Secure JavaScript code with minimized vulnerabilities
- Code that passes all static analysis checks
- Consistently formatted code for readability
- Modular and maintainable JavaScript codebase