Breakpoints Aren't Just For Breaking
A debugger is essential for helping understand how code works. In my lynda.com course Debugging The Web: JavaScript, I go over the essential parts of learning how to use one. These concepts are the same across pretty much all debuggers in common use, but there are also different helpful options available in each one that can be helpful.
The WebKit developers (who make the engine that drives Safari) recently published a blog post on breakpoint options in Safari and WebKit. The options covered include conditional breakpoints, which pretty much every debugger supports, as well as Probe Expressions and JavaScript evaluation. Those latter tools can be really handy when debugging event-driven or asynchronous (e.g. AJAX) code.
Safari has gotten much less love from the JavaScript developer community than Chrome has, but these tools are definitely worth exploring.