| 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 typeofand 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. |