DEV Community

Jacob Stern
Jacob Stern

Posted on

Day 69 / 100 Days of Code: Bug Hunting in JavaScript

Sat, September 7, 2024

Hey everyone! 👋

Today’s lesson is an essential skill for any developer. In this post, we’ll explore various debugging techniques in JavaScript, focusing on using MDN references, understanding stack traces, and identifying bugs that return incorrect results without throwing errors.

While we’ve all seen stack traces, be sure to review them closely, as there’s a treasure trove of information, including the exact location and error type. Common error types include SyntaxError, ReferenceError, and TypeError.

  • SyntaxError: Will be thrown when a typo creates invalid code that cannot be interpreted by the compiler. Scan your code to ensure that brackets, braces, and parentheses are properly placed and that you didn’t include any invalid semicolons.
  • ReferenceError: Will be thrown if you try to use a variable that does not exist. When this error is thrown, make sure all variables are properly declared and are within scope.
  • TypeError: Will be thrown if you attempt to perform an operation on a value of the wrong type, such as an object vs an array.

If you want details on an error message, MDN Web Docs has got you covered. Formerly known as Mozilla Developer Network, MDN Web Docs is a comprehensive reference for JavaScript error messages. Check out the JavaScript Error Reference for a complete breakdown of 134 JavaScript errors.

Identifying bugs that return incorrect results without throwing errors can be tricky because the code runs without any obvious issues. To tackle this, start by verifying the logic of your code and ensure that each function performs as expected. Use console.log() to print intermediate values and check if they match your expectations.

Writing unit tests can also help catch these bugs by validating the output for various inputs. Additionally, consider edge cases and test your code with unexpected or extreme values to see if it behaves correctly. By systematically checking your code and using these techniques, you can pinpoint and fix subtle bugs that might otherwise go unnoticed.

If you have another developer nearby, ask them to review your code. A fresh pair of eyes can often spot issues you might have missed. Code reviews can also provide valuable feedback and suggestions for improvement and build lifelong coder friendships.

One of the deepest and broadest debugging tools is Chrome Dev Tools. To get started, right-click on any webpage and select 'Inspect' from the list of options, or use the shortcut (Command + Option + I on Mac or Control + Shift + I on Windows). Or click the three-dot icon next to your profile picture on your Chrome, choose 'More Tools' and then 'Developer Tools'.

Debugging is a critical skill that can save you hours of frustration. By leveraging MDN references, understanding stack traces, and using effective debugging strategies, you can become a more efficient and effective developer.

Feel free to expand on each section with more details and examples based on your experience. Happy coding! 🚀

Top comments (0)