| 1 | Choose easy to understand and short names for variables and functions. |
| 2 | Try using closures and the module pattern. |
| 3 | Use linting to verify your code. |
| 4 | Comment what you consider needed (/* */ is much safer to use because it doesn’t cause errors when the line break is removed.). |
| 5 | Use Shortcut Notations. |
| 6 | Write smaller, generic helper functions that fulfill one specific task rather than catch-all methods. |
| 7 | Avoid heavy nesting. |
| 8 | Keep computation-heavy code outside of loops. |
| 9 | Keep DOM Access to a Minimum. |
| 10 | Don’t trust that data reaches your function is of the right format.Test with typeof and then do something with it. |
| 11 | Don’t expect elements in the DOM to be available.Test for them and that they indeed are what you expect them to be before altering them. |
| 12 | Never ever use JavaScript to protect something. |
| 13 | Use single quotation marks for string declarations. |
| 14 | Keep indentation as 2. |
| 15 | No js inline code has to be present in html. |
| 16 | Collate, minify and optimize your code in a build process. |
| 17 | JavaScript files are loaded asynchronously using async or deferred using defer attribute. |
| 19 | Use of if, if else, else if, switch should be used properly. Avoid too many nested if else statements, instead go for switch-case. |
| 20 | const and let should be used based on their definition. |
| 21 | Functions should hardly ever be 20 - 40 lines long. |
| 18 | Add parameter description for every function parameter as a part of comments. |
| 22 | Proper use of HOF (Higher order functions.). |
| 23 | Every method/function should have a try-catch block to avoid run time errors. |
| 24 | Use loggers in the catch block to get exact error. |
| 25 | Verify if business logic is proper and written efficiently. |
| 26 | Function casing. |
| 28 | Using spread operator. |
| 29 | Be consistent in your usage of arrow function. |
| 30 | Use destructuring assignment for arrays and objects. |
| 27 | Variable casing. |
| 31 | Use Promises or Async/Await. Rejection is handled. |
| 32 | No syntax/runtime errors and warnings in the code. |
| 33 | No deprecated functions in the code. |
| 34 | Check that each function is doing only a single thing. |
| 35 | No magic numbers. Put all such numbers as a constant. |
| 36 | Make sure recursive function don’t end up in infinite loop. |
| 37 | Avoid inline styling through JS use classes instead. |
| 38 | make sure the whole script wrapped inside document ready. |
| 39 | Use meaningful names for variables and function. |
| 40 | Add proper commenting. |
| 41 | Try using deffer while loading Scripts to avoid render blocking resources issue in the performance. |
| 42 | Make sure there is no message/error present in the console. |
| 43 | Please make sure to use condition while using offset().top property if the offset is present then only use top or else it will throw an error in the console. |
| 44 | Form/Input validation is not just to add required attribute also validate the input via JS to make sure expected input is entered by user. |