如果你想使用JavaScript来利用当今强大的浏览器,《学习JavaScript》为这个Web开发中奇妙且不可缺少的语言提供了完整而实际的指导。你将会学习从原始数据类型到复杂特性的所有内容,包括与Ajax和动态页面效果有关的JavaScript元素。学完这本书,你将能够使用最复杂的程序库和Web应用程序。
第二版中包括了许多JavaScript运用中的实践和范例,展示了如何将语言和浏览器环境整合,以及如何为符合标准的Web站点实践的编码技术。
有了这本书,你将能够:
学习JavaScript应用程序结构,包括基本语句和控制结构;
识别JavaScript对象:String、Number、Boolean、Function等;
使用浏览器调试工具和故障检测技术;
理解事件处理、表单事件和带有表单的JavaScript应用程序;
使用浏览器对象模型(BOM)、文档对象模型(DOM)和自定义对象进行开发;
学习关于浏览器cookies和更多的客户端存储技术;
利用Ajax应用程序得到使用XML和JSON的详细信息。
《学习JavaScript》遵循已被证实的学习原理,帮助你以简单的步骤吸收这些原理,以使你理解如何在各种浏览器中建立强大且反应迅速的应用程序。
"无论你是一个初学者,还是一个正在寻求一种新语言的有经验的程序设计者,我都要明确地向你推荐《学习JavaScript》这本书。作者Shelley简单明了的分析,可以帮助你掌握这种语言的基础及细微之处,从而将它适当地用于你自己的Web站点。"
——Anthony T.Holdener III,O'Reilly出版的《Ajax指南》一书的作者
作者简介:Shelley Powers从事并编写Web技术超过13年。近年来她在O'Reilly出版的图书内容涵盖了语义网(semantic web)、Ajax、JavaScript及Web graphics。同时,她也是一名狂热的业余摄影爱好者和Web开发爱好者。
Preface
1. Hello JavaScript!
Hello World!
Hello World! Once Again
The script Tag
JavaScript Versus ECMAScript Versus JScript
Defining Functions in JavaScript
Event Handlers
The document Browser Object
The property Operator
The var Keyword and Scope
Statements
Comments
What You Didn't See: HTML Comments and CDATA Sections.
JavaScript Files
Accessibility and JavaScript Best Practices
Accessibility Guidelines
noscript
2. JavaScript Data Types and Variables
Identifying Variables
Naming Guidelines
Primitive Types
The String Data Type
String Escape Sequences
String Encoding
Converting to Strings
The Boolean Data Type
The Number Data Type
The null and undefined Variables
Constants: Named but Not Variables
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
3. Operat0rs and Statements
The Format of a JavaScript Statement
The Assignment Statement
The Arithmetic Operators
The Unary Operators
Operator Precedence
A Handy Shortcut: Assignment with Operation
The Bitwise Operators
Conditional Statements and Program Flow
The if...else Conditional Statement
The switch Conditional Statement
The Conditional Operators
The Equality and Identity (String Equality) Operators
Other Relational Operators
The One and Only JavaScript Ternary Operator
The Logical Operators
Advanced Statements: The Loops
The while Loop
The do...while Loop
The for Loops
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
4. The JavaScript Objects
Primitive Data Types As Objects
Boolean, Number, and String
The Boolean Object
The Number Object, Static Properties, and Instance Methods
The String Object
Regular Expressions and RegExp
The RegExp Methods: test and exec
Working with Regular Expressions
The Date Object
The Math Object
The Math Properties
The Math Methods
JavaScript Arrays
FIFO Queues
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
5. Functions
Declarative Functions
Function Naming Conventions and Size
Function Returns and Arguments
Anonymous Functions
Function Literals
Functions and Recursion
Nested Functions, Function Closure, and Memory Leaks
Callback Functions
Function Type Summary
Function Scope
Function As Object
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
6. Troubleshooting, Debugging, and Cross-Browser Issues
Simple Ways to Debug
Development and Debugging Tools by Browser
Firefox and Firebug
Using console.log
Firefox, the Web Developer Toolkit, and NoScript
Opera and Dragonfly
Safari/WebKit and the Web Inspector
Internet Explorer
Dealing with Cross-Browser Differences
Object Detection
Where Object Detection Fails
DOCTYPE, X-UA-Compatible, and Quirks Mode
Breaking Backward Compatibility: The IE8 http-equiv Meta Tag
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
7. Catching Events
The Events
Level 0 Event Handling
The Event Object
Event Bubbling
Event Handlers and this
The DOM Level 2 Event Model
Generating Events
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
8. Forms, Form Events, and Validation
Attaching Events to Forms: Different Approaches
Cross-Browser Event Handling
Canceling an Event
Selection
Dynamically Modifying the Selection
Selection and Auto-Selection
Radio Buttons and Checkboxes
The text, textarea, password, and hidden Input Elements
Text Validation
Input Fields and Regular Expression Validation
Forms, the Sandbox, and XSS
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
9. Browser As Puzzle Box
The Structure of the Browser at a Glance
The window Object
Creating and Controlling Windows
The Dialogs: alert, confirm, and prompt
Creating Custom Windows
Modifying a Window
Frames
The location Object
Remote Scripting with the iframe
Adding and Controlling Timers
The history, screen, and navigator Objects
The history Object
The screen Object
The navigator Object
The history, screen, and navigator Properties in Action
The Document Object
Links
Images
innerHTML
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
10. Cookies and Other Client-Side Storage Techniques
The JavaScript Sandbox and Cookie Security
The Same-Origin Security Policy
Using document.domain
All About Cookies
Storing and Reading Cookies
Flash Shared Objects, Google Gears, and HTML5 DOM Storage
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
11. The DOM, or Web Page As Tree
A Tale of Two Interfaces
The DOM HTML API
The DOM HTML Objects and Their Properties
DOM (HTML) Collections
Understanding the DOM: The Core API
The DOM Tree
Node Properties and Methods
The DOM Core Document Object
Element and Access in Context
Modifying the Tree
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
12. Dynamic Pages
JavaScript, CSS, and the DOM
The Style Property/Attributes
Fonts and Text
Font Style Properties
Text Properties
Position and Movement
Dynamic Positioning
Drag-and-Drop
Size and Clipping
Overflow and Dynamic Content
The Clipping Rectangle
Display, Visibility, and Opacity
The Right Tool for the Right Effect
Just-in-Time Information
Revisiting the DOM: Collapsing Forms, Query Selectors, and Class Names
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
13. Creating Custom lavaScript Objects
The JavaScript Object and Prototyping
Prototyping
Creating Your Own Custom JavaScript Objects
Enter the Function
Public and Private Properties and Where this Enters the Picture
Getters and Setters
Object Encapsulation
Chaining Constructors and JavaScript Inheritance
One-Off Objects
Object Libraries: Packaging Your Objects for Reuse
Advanced Error Handling Techniques (try, throw, catch)
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
14. Moving Outside the Page with Ajax
How Ajax Works
Hello Ajax World!
The XMLHttpRequest Object and Preparing to Send the Request
Object, Object, Who Has the Object?
The XMLHttpRequest Methods
Processing the Web Request Return
Checking the readyState and status of an Ajax Request
Processing the Web Request Result
Ajax: It's Not Only Code
The Dynamic Nature of Ajax
Ajax Accessibility and Degrading Gracefully
Security and Workarounds
JavaScript and Ajax Libraries
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
15. Ajax Data: XML oriSON?
XML-Formatted Ajax Results
The Data's MIME Type
Generating the XML on the Server
Processing the XML on the Client
JavaScript Object Notation
A Simple JSON Application
The JSON Object
Test Your Knowledge: Quiz
Test Your Knowledge: Answers
Index