Product Reviews
Free Tool: Check Your JavaScript with JSLint
JSLint checks your JavaScript code for issues before running it and waiting for it to blow up.
I have only a grudging acceptance for JavaScript. The nature of JavaScript as a prototype-based dynamic language means that all sorts of things that I like won't ever be fully supported in a JavaScript environment (IntelliSense, full data type checking at design time or compile time). This is, of course, the trade-off for the great things that JavaScript can do, which I've come to appreciate after reading "JavaScript: The Good Parts" by Douglas Crockford (who also had a great deal to do with developing the JSON format).
Well, Crockford also created an online tool for checking your JavaScript code for issues without running your code and waiting for it to blow up: JSLint. All you have to do is paste your JavaScript code into the page, check the tests you do (or don't) want applied and click a button. It's up to you to decide whether you'll accept the feedback; Crockford really, really wants you to include the new "use strict" option at the top of all of your functions, for instance (you can turn that off).
You need a thick skin to use JSLint: As his page says, "JSLint will hurt your feelings." With JavaScript, I expect my feelings to be hurt (a more experienced JavaScript developer might have a different opinion). However, you'll almost certainly learn something about JavaScript by running it through JSLint.
If you don't want to keep returning to the JSLint Web page, there are some command line tools that simplify using it. However, as a Visual Studio developer, you'll probably be more interested in the JSLint VS2010 add-in (available through Visual Studio's Extension Manager). The Add-In integrates JSLint into Visual Studio to give feedback on JavaScript code. The options page lets you configure how JSLint integrates with Visual Studio. By default, for instance, JSLint checks your JavaScript during builds and will cancel the build if it finds a problem; you may want to turn that option off.
About the Author
Peter Vogel is a system architect and principal in PH&V Information Services. PH&V provides full-stack consulting from UX design through object modeling to database design. Peter tweets about his VSM columns with the hashtag #vogelarticles. His blog posts on user experience design can be found at http://blog.learningtree.com/tag/ui/.