|
home >> about >> intro NOTE: This site has been updated to reflect the content of the second edition of JavaScript: The Complete Reference. Since the second edition does not have an Introduction, the Introduction to the first edition is reproduced here. While JavaScript is widely recognized as an essential part of any web developer's toolbox, it is also widely misunderstood. The language is commonly pigeonholed into the role of scripting various Dynamic HTML (DHTML) Web page gimmicks. Often developers end up using JavaScript as one might use duct tape: to hold together various pieces of a project without any real consideration or understanding of the underlying technologies. Ad hoc approaches to web development have perpetuated popular misconceptions to the point where many make the assumption that JavaScript is a simplistic language of limited scope and power. With the rise of structured markup including XML and the Document Object Model (DOM), this attitude is changing. Developers are taking a closer look at JavaScript and seeing it for what it is: a complete, powerful, object-oriented programming language that is tightly integrated with Web browsers and the latest Web technologies. It is this view of JavaScript that we present in our book. In Parts I and II we cover the fundamentals of the JavaScript programming language. We do so with a depth and completeness that we hope will satisfy veteran developers and novices alike. Starting with the basics of how JavaScript can be embedded in a Web page, we cover in detail the theory and application of the data types, flow control features, and objects that JavaScript provides. After this comprehensive discussion of language features (everything from scoping to regular expressions), we shift our focus to how JavaScript interacts with its execution environment (the browser) in order to carry out useful tasks. Part III introduces the features the browser makes available to scripts known as the browser's object model and how JavaScript fits into the picture. We examine in turn the traditional models of early Netscape Navigator and Internet Explorer, and work our way up to the current models of Netscape and Internet Explorer 6. The details of the standard Document Object Model (DOM) that forms the core of most modern browsers is of course included. Here we spend a great deal of time covering the true meaning of dynamic HTMLdynamically modifying the markup of a page by adding, modifying and even deleting HTML elements at run time. The section concludes with an in-depth discussion on interacting with the user by handling the various events that he or she can trigger. At this point the reader should have a solid grasp on all JavaScript fundamentals and be ready to apply this knowledge to specific applications. The focus of Part IV is on using JavaScript to effectively solve real-world problems. From controlling browser windows and frames to implementing DHTML menus, it's all here. In addition to what you might expect applications like image rollover buttons and form validation we include topics we have found to be useful but that are often neglected by other authors, for example full blown browser detection, how to interact with Java applets and ActiveX controls, and even manipulation of XML documents with JavaScript. Parts V and VI cover several specialized topics of great importance in detail. This part of the book addresses specific issues and features that will probably change, but represents the state of modern thinking about JavaScript. First we tackle the issue of security in JavaScript. Next we cover the various "flavors" of JavaScript by presenting differences between the Microsoft and Netscape implementations. How to deal with cross browser scripting challenges is a recurring theme of the book so it is apt to conclude the prose section of the book with some real world development practices including JavaScript tips, tricks and debugging advice. The final part of our book is the appendices. The lengthy object reference section will hopefully serve the journeyman JavaScripter well after he or she has mastered basic language syntax. As you can see, the topics we cover encompass a large number of areas and applications. This hints at the fact that JavaScript has the distinct honor of being at the intersection of many technologies HTML, CSS, XML, the DOM, and Web browsers to name a few and the capabilities to harness them all. We hope that you come away from our book with an appreciation of the power and elegance of JavaScript and that you learn to wield this power well. Happy scripting! -Thomas Powell and Fritz Schneider Summer 2001 |