如果你想使用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