'''Overview''' Learning JavaScript generally means learning to script a page in a WebBrowser. JavaScript is also used for programming MozillaXul applications. And JavaScript''''''s can run stand-alone like VisualBasic scripts and DOS batch files in MicrosoftWindows. IwannaLearnJavaScript assumes you will be scripting web pages. Learning to script web pages with JavaScript involves learning not only the JavaScript language itself but the objects that comprise the browser page and and other browser elements, plus the browser's event handling mechanism. ---- '''Online:''' Documentation: * http://developer.mozilla.org/en/docs/JavaScript (JS 1.5 docs) * http://www.xulplanet.com/references/objref/ (Mozilla's DOM and XUL docs) * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56jsoriJScript.asp (Microsoft JScript docs) * http://www.w3schools.com/jsref/ (JS Reference, kind of dated) Language: * http://www.crockford.com/javascript/ (very deep stuff about the language) * http://www.webreference.com/js/column79/ (OO Programming with JS; see also column 80) Articles & Tutorials: * http://www.alistapart.com/topics/code/scripting/ (articles) * http://www.brainjacked.com/ (library of fascinating code) * http://www.brainjar.com/ (tutorials & experiments) * http://www.devarticles.com/c/b/JavaScript/ & http://www.devshed.com/c/b/JavaScript/ (articles) * http://www.oreillynet.com/topics/javascript/html & http://www.oreillynet.com/topics/javascript/scripting (articles) * http://www.quirksmode.org/ (start with the "JavaScript" section, then move on to "W3C DOM") * http://www.sitepoint.com/subcat/javascript (tutorials & articles) * http://www.w3schools.com/js/ (tutorial, kind of dated) Some Wiki pages: * AjaxWebApplications * BlocksInJavaScript * CategoryJavaScript * JavaScriptFlaws * http://c2.com/cgi/wiki?search=javascript * http://c2.com/cgi/fullSearch?search=javascript * http://c2.com/cgi/wiki?search=bookmarklet ---- '''Books:''' Newer to older * ''JavaScript: The Definitive Guide'', David Flanagan, 5th ed. (Aug. 2006, ISBN 0596101996, OreillyAndAssociates) * ''DHTML Utopia: Modern Web Design Using JavaScript & DOM'', Stuart Langridge (June 2005, ISBN 0957921896, SitePoint) comes with a poster if you order from SitePoint * ''Professional JavaScript for Web Developers'', Nicholas C. Zakas (April 2005, ISBN 0764579088, Wrox) * ''JavaScript: The Complete Reference'', Thomas Powell & Fritz Schneider (July 2004, ISBN 0072253576, Mc''''''Graw-Hill) * ''JavaScript Bible'', Danny Goodman (March 2004, ISBN 0764557432, Wiley) * ''JavaScript & DHTML Cookbook'', Danny Goodman (April 2003, ISBN 0596004672, OreillyAndAssociates) * ''JavaScript: A Programmer's Companion from Basics through DHTML, CSS and DOM'', Stefan Koch (Nov. 2002, ISBN 0470847042, Wiley) * ''Dynamic HTML: The Definitive Reference'', Danny Goodman (Sept. 2002, ISBN 0596003161, OreillyAndAssociates) ''JavaScript: A Programmer's Companion from Basics through DHTML, CSS and DOM'' is great for total beginners. ''JavaScript: The Definitive Guide'' will teach you the details of the language. It's kind of dated, though, and doesn't veer from the core language and objects. -- ''This was a judgement on the previous, fourth edition, so probably needs updating.'' ''JavaScript: The Complete Reference'' also teaches the details of the language. It's new enough and farther from the core to introduce AjaxWebApplications and processing RssFeeds. ''DHTML Utopia'' assumes you're already familiar with JavaScript. It presents loads of whiz-bang cookbook uses, including an entire section on Ajax. Most books, especially older ones, only teach for various versions of InternetExplorer and NetscapeNavigator. This book assumes DOM-compliance (IE6, MozillaFirefox, SafariBrowser, etc.) and points out glitches when scripting the less-popular browsers. ---- '''Tools:''' Download and install MozillaFirefox or the full-blown MozillaBrowser. Why? Because its "JavaScript Console" and "DOM Inspector" are invaluable. The JavaScript Console keeps a log of error messages, and the DOM Inspector lets you (duh!) inspect and navigate the DocumentObjectModel of any web page. Keep in mind that although modern browsers all have pretty much the same DOM, a web page in a Mozilla browser will have a lot more Text nodes than in InternetExplorer. The Mozilla browsers consider whitespace, such as newlines, between HTML tags to be text while InternetExplorer ignores it. I'm not sure how other browsers handle this, but InternetExplorer is, as usual, "non-standard." Mozilla's JavaScript Console helps you track and find errors while using a MozillaBrowser, but what about other browsers? Be sure set your InternetExplorer preferences to pop up JavaScript error messages. You won't get a nice running log, however. (Does M$'s DotNet developer environment provide good JavaScript/JScript development tools?) I have a boatload of objections to the SafariBrowser, one of which is, I can't for the life of me figure out how to get it to display JavaScript errors. Maybe it can't. Safari feels like black box. I know nothing about OperaBrowser and many other browsers. ''Safari has a Debug menu from which you can turn on a JavaScript console, log exceptions to the Console, and evaluate html snippets (including