産品特色
        內容簡介
     JavaScript是一門腳本語言,它通過提供動態的、個性化的交互式內容,來增強靜態Web應用程序的功能。JavaScript使訪問站點的 用戶能夠享受到更美妙的體驗,增強瞭網站對用戶的吸引力。現在,美觀的下拉菜單、滾動的文字和動態內容已經廣泛應用於各種網站,這一切都是通過 JavaScript來實現的。各種主流瀏覽器都支持JavaScript,JavaScript已經成為從事Web開發的優選腳本語言。另 外,JavaScript語言也可用於Web應用程序之外的其他場閤,例如可用於自動化管理任務。 
  本書旨在介紹使用JavaScript進 行開發的基礎知識,即JavaScript的含義,JavaScript代碼是如何運行的,以及使用JavaScript能夠實現哪些功能等。本書將首先 介紹JavaScript的基本語法,然後介紹如何創建功能強大的Web應用程序。讀者不必為沒有編程經驗而擔心,本書將循序漸進地介紹所有相關知識。 JavaScript是通嚮程序設計世界的大門,學習和理解瞭本書的基礎知識,就可以進一步學習更新、更高級的編程技術。       
作者簡介
     Jeremy McPeak,是一位專業程序員和分析員,對JavaScript和C # 有很深的理解。他與其他作者閤作編寫瞭本書的前兩版,並獨立編寫瞭JavaScript 24-Hour Trainer,得到瞭廣泛的好評。他服務一傢以Web為中心的在綫學習站點Tuts+ Code,主題包括JavaScript、C#和.NET Framework。  
  Paul Wilton,擁有自己的公司,為假日酒店提供在綫預訂係統,該係統主要使用JavaScript開發。      
目錄
   第1章  JavaScript與Web概述    1 
1.1  JavaScript簡介    1 
1.1.1  JavaScript的含義    1 
1.1.2  JavaScript與Web    2 
1.1.3  JavaScript的功能    3 
1.1.4  創建JavaScript Web應用程序所需的工具    4 
1.2  腳本的使用場閤    6 
1.2.1  鏈接外部JavaScript文件    6 
1.2.2  使用外部文件的優點    7 
1.3  第一個簡單的JavaScript程序    7 
1.4  編寫更多的JavaScript程序    9 
1.5  瀏覽器和兼容性問題簡述    13 
1.6  小結    14 
第2章  數據類型與變量    15 
2.1  JavaScript中的數據類型    15 
2.1.1  數值數據    16 
2.1.2  文本數據    16 
2.1.3  布爾數據    17 
2.2  變量—— 存儲在內存中的數據    18 
2.2.1  創建變量並賦值    19 
2.2.2  用其他變量的值為 
變量賦值    21 
2.3  使用數據——  計算數值及基本字符串操作    23 
2.3.1  數值計算    23 
2.3.2  運算符的優先級    27 
2.3.3  基本的字符串操作    31 
2.3.4  字符串與數值的混閤操作    33 
2.4  數據類型轉換    34 
2.5  數組    38 
2.6  小結    46 
2.7  習題    46 
第3章  決策與循環    49 
3.1  決策語句—— if和switch語句    50 
3.1.1  比較運算符    50 
3.1.2  if語句    52 
3.1.3  邏輯運算符    56 
3.1.4  在if語句中使用多個條件    58 
3.1.5  else和else if    61 
3.1.6  字符串的比較    63 
3.1.7  switch語句    63 
3.2  循環—— for語句和while語句    68 
3.2.1  for循環    68 
3.2.2  for...in 循環    71 
3.2.3  while循環    72 
3.2.4  do...while循環    73 
3.2.5  break和continue語句    74 
3.3  小結    75 
3.4  習題    76 
第4章  函數與作用域    79 
第5章  JavaScript —— 基於對象的語言    91 
第6章  字符串操作    141 
第7章  日期、時間和計時器    177 
第8章  瀏覽器程序設計    189 
第9章  編寫DOM腳本    211 
第10章  事件    249 
第11章  HTML錶單:與用戶交互    309 
第12章  JSON    361 
第13章  數據存儲    371 
第14章  Ajax    403 
第15章  HTML5媒體    433 
第16章  jQuery    453 
第17章  其他JavaScript庫    475 
第18章  常見錯誤、調試和錯誤處理    519 
附錄A  參考答案    555 
附錄B  JavaScript核心參考    623 
附錄C  W3C DOM參考    647 
附錄D  Latin-1字符集    671       
前言/序言
     JavaScript是一門腳本語言,它通過提供動態的、個性化的交互式內容,來增強靜態Web應用程序的功能。JavaScript使訪問站點的用戶能夠享受到更美妙的體驗,增強瞭網站對用戶的吸引力。現在,美觀的下拉菜單、滾動的文字和動態內容已經廣泛應用於各種網站,這一切都是通過JavaScript來實現的。各種主流瀏覽器都支持JavaScript,JavaScript已經成為從事Web開發的首選腳本語言。另外,JavaScript語言也可用於Web應用程序之外的其他場閤,例如可用於自動化管理任務。 
  本書旨在介紹使用JavaScript進行開發的基礎知識,即JavaScript的含義,JavaScript代碼是如何運行的,以及使用JavaScript能夠實現哪些功能等。本書將首先介紹JavaScript的基本語法,然後介紹如何創建功能強大的Web應用程序。讀者不必為沒有編程經驗而擔心,本書將循序漸進地介紹所有相關知識。JavaScript是通嚮程序設計世界的大門,學習和理解瞭本書的基礎知識,就可以進一步學習更新、更高級的編程技術。 
  本書讀者對象 
  為瞭最好地汲取本書中的知識,讀者應該對HTML和CSS有所瞭解,並知道如何創建靜態的Web頁麵。除此之外,讀者不必擁有任何編程經驗。 
  本書同樣適閤於具有編程經驗、且希望學習Web程序設計的讀者。這些讀者可能比較瞭解計算機知識,但未必掌握Web技術。 
  另外,一些讀者具備設計背景,但對計算機知識和Web技術不大瞭解。那麼,對於這類讀者而言,JavaScript可以作為一個進入編程和Web應用程序開發世界的快捷通道。 
  對於所有的讀者,我都希望本書物有所值。 
  本書涵蓋的內容 
  本書首先介紹JavaScript的含義,以及JavaScript的基礎語法。然後詳細介紹程序設計的基本概念,包括數據、數據類型以及選擇語句和循環語句等結構化程序設計的概念。 
  熟悉這些基礎知識之後,本書將介紹JavaScript的一個重要概念——對象,討論如何利用JavaScript的內置對象,如函數、日期和字符串等,來管理復雜的數據,簡化程序的設計。本書還將介紹如何使用JavaScript操作瀏覽器提供的對象並對瀏覽器進行探討。 
  隨後,本書將介紹更高級的主題,例如編寫動態操作Web頁麵元素的代碼,並在頁麵上有某行為發生時執行相應的代碼。還將介紹如何腳本化錶單和其他控件。運用這些知識,就可以創建專業水準的Web應用程序,並與用戶交互。 
  之後,本書介紹如何將數據存儲到瀏覽器中並直接與服務器進行通信。還介紹如何為新的HTML5媒體元素編寫代碼,以及如何為這些元素編寫自定義的用戶界麵。 
  本書還探討一些省時的JavaScript框架,例如jQuery、Modernizr、Prototype和MooTools,瞭解它們的工作原理,以及它們如何幫助創建復雜而強大的JavaScript應用程序。 
  最後,本書介紹一些常見的語法錯誤和邏輯錯誤,還介紹如何找到這些錯誤,以及如何使用針對Chrome、Internet Explorer、Firefox、Safari和Opera的JavaScript調試器來幫助找齣錯誤。本書還介紹瞭如何處理漏掉的錯誤,並確保這些錯誤不會對應用程序最終用戶的體驗造成不良影響。 
  本書介紹的所有新概念都用實例加以說明。通過這些實例可以對所學的JavaScript原理進行實踐,以鞏固所學的知識。 
  本書末尾有4個附錄,附錄A是本書各章末尾習題的答案,其他附錄包含內容豐富且極富價值的參考資料。附錄B是JavaScript語言的核心參考,附錄C是完整的W3C DOM核心參考——還包括HTML DOM和DOM Level 2事件模型的信息,附錄D是Latin-1字符集的十進製和十六進製字符碼。 
  如何使用本書 
  由於JavaScript代碼是基於文本的技術,因此要創建JavaScript程序,隻需一個文本編輯器即可。 
  另外,為瞭測試本書中的代碼,還需要一個支持較新JavaScript版本的瀏覽器。理想情況下,這意味著最好使用Chrome、Internet Explorer、Firefox、Safari和Opera的最新版本。本書代碼在這些瀏覽器中進行瞭詳細的測試。不過,本書的代碼應該可以在當今的任何Web瀏覽器中工作。對於不能跨瀏覽器兼容的情況,本書會專門指齣。 
  勘誤錶 
  盡管我們已經盡瞭各種努力來保證文章或代碼中不齣現錯誤,但錯誤總是難免的,如果你在本書中找到瞭錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤錶,可以讓其他讀者節省時間、避免閱讀和學習受挫,當然,這還有助於提供更高質量的書籍。請給wkservice@vip.163.com發電子郵件,我們就會檢查你的信息,如果是正確的,就把它發送到該書的勘誤錶頁麵上,或在後續版本中采用。 
  要在網站上找到本書的勘誤錶,可以登錄,通過Search框或書名列錶查找本書,然後在本書的細目頁麵上,單擊Book Errata鏈接。在這個頁麵上可以查看到Wrox編輯已提交和粘貼的所有勘誤項。完整的圖書列錶還包括每本書的勘誤錶。 
  如果讀者沒有在Book Errata頁麵上找到自己發現的錯誤,那麼請轉到頁麵l,針對你所發現的每一項錯誤填寫錶格,並將錶格發給我們,我們將對錶格內容進行認真審查,如果確實是我們書中的錯誤,我們將在該書的Book Errata頁麵上標明該錯誤信息,並在該書的後續版本中改正。 
  p2p.wrox.com 
  P2P郵件列錶是為作者和讀者之間的討論而建立的。讀者可以在p2p.wrox上加入P2P論壇。該論壇是一個基於Web的係統,用於傳送與Wrox圖書相關的信息和相關技術,與其他讀者和技術用戶交流。該論壇提供瞭訂閱功能,當論壇上有新帖子時,會給你發送你選擇的主題。Wrox作者、編輯和其他業界專傢和讀者都會在這個論壇上進行討論。 
  在http://p2p.wrox.com上有許多不同的論壇,幫助讀者閱讀本書,在讀者開發自己的應用程序時,也可以從這個論壇中獲益。要加入這個論壇,需執行下麵的步驟: 
  (1) 進入p2p.wrox.com,單擊Register鏈接。 
  (2) 閱讀其內容,單擊Agree按鈕。 
  (3) 提供加入論壇所需的信息及願意提供的可選信息,單擊Submit按鈕。 
  (4) 然後就會收到一封電子郵件,其中的信息描述瞭如何驗證賬戶,完成加入過程。 
  加入論壇後,就可以發送新信息,迴應其他用戶的帖子。可以隨時在Web上閱讀信息。如果希望某個論壇給自己發送新信息,可以在論壇列錶中單擊該論壇對應的Subscribe to this Forum圖標。 
  對於如何使用Wrox P2P的更多信息,可閱讀P2P FAQ,瞭解論壇軟件的工作原理,以及許多針對P2P和Wrox圖書的常見問題的解答。要閱讀FAQ,可以單擊任意P2P頁麵上的FAQ鏈接。       
				
 
				
				
					《JavaScript入門經典(第5版)》是一本專為初學者打造的JavaScript學習指南,旨在幫助讀者從零開始掌握這門廣泛應用於網頁開發和應用程序構建的強大腳本語言。本書內容涵蓋瞭JavaScript的核心概念、語法結構以及實際應用技巧,力求以清晰易懂的方式引導讀者逐步深入。  本書的目標讀者:  本書主要麵嚮以下人群:     編程零基礎的學習者: 即使您之前沒有任何編程經驗,本書也會從最基本的概念講起,讓您能夠輕鬆入門。    希望學習Web前端開發的初學者: JavaScript是構建現代交互式網頁不可或缺的一部分。本書將為您打下堅實的基礎,讓您能夠自信地進行前端開發。    其他語言背景的開發者: 如果您已經掌握瞭一種或多種編程語言,但對JavaScript不熟悉,本書將幫助您快速理解其獨特之處和在Web開發中的應用。    對動態網頁和交互效果感興趣的任何人: 無論是想為自己的網站增添動感,還是想理解網頁是如何實現各種酷炫效果的,本書都將為您揭示背後的原理。  本書內容概覽:  本書的結構設計循序漸進,確保讀者在理解每一個概念後,再進入更復雜的知識點。  第一部分:JavaScript基礎  1.  JavaScript簡介與環境搭建:        什麼是JavaScript? 深入理解JavaScript的曆史、作用以及它在現代Web開發中的核心地位。我們將探討它與HTML和CSS的關係,以及它如何賦能動態和交互式的用戶體驗。        如何運行JavaScript? 本章節將指導您如何設置開發環境,包括選擇和使用文本編輯器(如VS Code, Sublime Text等),以及如何利用瀏覽器的開發者工具來編寫、測試和調試JavaScript代碼。您將學習如何將JavaScript代碼嵌入HTML文檔(內聯、外部文件),以及在瀏覽器控製颱中執行簡單腳本。  2.  變量、數據類型與運算符:        變量: 學習如何聲明(`var`, `let`, `const`)和使用變量來存儲數據。我們將詳細講解不同聲明方式的區彆和適用場景,幫助您寫齣更健壯的代碼。        基本數據類型: 掌握JavaScript中的基本數據類型,包括字符串(`string`)、數字(`number`,包括整數和浮點數)、布爾值(`boolean`)、`null`、`undefined`以及`Symbol`(ES6新增)和`BigInt`(ES11新增)。理解每種數據類型的特性和用途。        復雜數據類型: 介紹對象(`object`)和數組(`array`)這兩種重要的數據結構,它們是存儲和組織復雜數據的關鍵。        類型轉換: 學習JavaScript中常見的類型轉換方式,包括顯式轉換(如`Number()`, `String()`, `Boolean()`)和隱式轉換,以及在實際開發中如何避免因類型轉換不當而産生的錯誤。        運算符: 熟悉JavaScript中各種運算符的用法,包括算術運算符(`+`, `-`, ``, `/`, `%`)、賦值運算符(`=`, `+=`, `-=`等)、比較運算符(`==`, `!=`, `===`, `!==`, `>`, `<`, `>=`, `<=`)、邏輯運算符(`&&`, `||`, `!`)、位運算符、條件(三元)運算符(`? :`)等,並理解它們的優先級。  3.  控製流語句:        條件語句: 學習如何使用`if`、`else if`、`else`以及`switch`語句來根據不同的條件執行不同的代碼塊,實現程序的邏輯判斷。        循環語句: 掌握`for`、`while`、`do...while`以及`for...in`和`for...of`(ES6新增)循環,用於重復執行某段代碼。我們將講解如何正確使用循環來迭代數組、對象或執行特定次數的任務。  第二部分:JavaScript核心概念  4.  函數:        函數聲明與調用: 學習如何定義函數(函數聲明、函數錶達式、箭頭函數ES6)以及如何調用它們來執行特定的任務。        參數與返迴值: 理解函數參數的傳遞機製,包括形參、實參、默認參數(ES6)和剩餘參數(ES6)。學習如何通過`return`語句從函數中獲取返迴值。        作用域: 深入理解JavaScript的作用域鏈(全局作用域、函數作用域、塊級作用域ES6)以及變量的可見性,這是避免命名衝突和管理內存的關鍵。        迴調函數: 介紹迴調函數的概念及其在異步編程中的重要作用。  5.  對象與數組的高級應用:        對象: 進一步學習對象的創建方式(對象字麵量、構造函數、類ES6)、屬性和方法的訪問與修改。我們將探討對象深拷貝與淺拷貝的區彆,以及如何使用`Object`對象提供的靜態方法(如`Object.keys()`, `Object.values()`, `Object.entries()`等)。        數組: 掌握更多數組的操作方法,如`push()`, `pop()`, `shift()`, `unshift()`, `splice()`, `slice()`, `concat()`, `join()`等。學習使用數組的迭代方法,如`forEach()`, `map()`, `filter()`, `reduce()`, `some()`, `every()`等,它們能夠極大地簡化數據處理。        數組與對象的遍曆: 結閤前麵學習的控製流和對象/數組方法,學習更高效地遍曆和處理數據集閤。  6.  DOM(文檔對象模型):        DOM是什麼? 理解DOM作為HTML文檔的編程接口,如何將HTML文檔解析成一個樹形結構,以及JavaScript如何通過DOM來操作網頁內容。        選擇DOM元素: 學習使用`document.getElementById()`, `document.getElementsByClassName()`, `document.getElementsByTagName()`, `document.querySelector()`, `document.querySelectorAll()`等方法來選取頁麵中的HTML元素。        操作DOM元素: 掌握如何修改元素的文本內容 (`innerText`, `textContent`)、HTML內容 (`innerHTML`)、屬性(`setAttribute()`, `getAttribute()`, `removeAttribute()`)、樣式(`style`屬性)以及添加或刪除元素。        DOM事件: 理解事件處理機製,學習如何監聽和響應用戶的交互事件(如點擊、鼠標移動、鍵盤輸入、錶單提交等),並使用`addEventListener()`方法來添加事件監聽器。  第三部分:JavaScript進階與實踐  7.  事件處理與事件委托:        事件冒泡與捕獲: 深入理解事件在DOM樹中的傳播過程,這對於編寫高效的事件處理邏輯至關重要。        事件對象: 學習如何訪問事件對象 (`event`),從中獲取事件的詳細信息,如鼠標坐標、按鍵信息、目標元素等。        事件委托: 掌握利用事件委托來優化事件處理性能的技巧,特彆是在處理大量子元素事件時。  8.  AJAX與異步編程:        AJAX簡介: 理解AJAX(Asynchronous JavaScript and XML)的核心概念,以及它如何允許網頁在不刷新的情況下與服務器進行數據交換,實現動態更新頁麵內容。        `XMLHttpRequest`對象: 學習如何使用`XMLHttpRequest`對象來發送HTTP請求,獲取服務器響應。        Fetch API (ES6): 介紹更現代、更易用的`Fetch API`,它提供瞭Promise的接口,使得異步請求更加簡潔優雅。        JSON數據格式: 學習JSON(JavaScript Object Notation)的格式以及如何在JavaScript中解析和生成JSON數據。        Promise: 深入理解Promise對象,它是一種處理異步操作的更優雅的解決方案,用於管理異步操作的成功和失敗。        `async`/`await` (ES8): 學習使用`async`/`await`語法糖,它能夠以同步的方式編寫異步代碼,極大地提高瞭代碼的可讀性和可維護性。  9.  錯誤處理:        JavaScript錯誤類型: 瞭解常見的JavaScript錯誤類型,如語法錯誤、運行時錯誤(`TypeError`, `ReferenceError`, `RangeError`等)。        `try...catch...finally`語句: 學習如何使用`try...catch...finally`塊來捕獲和處理代碼執行過程中可能齣現的錯誤,確保程序的健壯性。        拋齣自定義錯誤: 學習如何使用`throw`語句拋齣自定義錯誤,以便在特定情況下通知調用者。  10. 現代JavaScript特性(ES6+):        箭頭函數 (`=>`): 重新迴顧並深入理解箭頭函數與傳統函數的區彆,特彆是`this`的指嚮問題。        模闆字符串 (Template Literals): 學習使用反引號(`` ` ``)創建多行字符串和嵌入變量,使字符串拼接更加方便。        解構賦值 (Destructuring Assignment): 掌握數組和對象的解構賦值,能夠快速地從數組或對象中提取數據。        類 (Classes): 學習如何使用`class`關鍵字來創建類,實現麵嚮對象編程的語法糖。        模塊化 (Modules - `import`/`export`): 理解模塊化開發的優勢,學習如何使用`import`和`export`關鍵字來組織和復用代碼。        其他ES6+特性: 簡要介紹`Map`, `Set`, `Spread Syntax`, `Rest Parameters`等常用新特性。  11. 實用的JavaScript技巧與最佳實踐:        代碼風格與規範: 討論編寫清晰、一緻、易於維護的代碼風格,包括命名規範、縮進、注釋等。        性能優化: 提供一些JavaScript性能優化的建議,例如減少DOM操作、閤理使用緩存、優化循環等。        調試技巧: 介紹更高級的瀏覽器開發者工具使用技巧,幫助您更有效地定位和解決bug。        常見陷阱與避免: 指齣JavaScript開發中常見的誤區和陷阱,並提供避免方法。  本書特色:     由淺入深,結構清晰: 從最基礎的語法講起,逐步深入到復雜的概念和實際應用,邏輯嚴謹,便於讀者理解和吸收。    概念解釋詳盡: 對每一個重要的概念都進行瞭詳細的解釋,並配以大量的代碼示例,幫助讀者理解其工作原理。    實踐導嚮: 強調理論與實踐相結閤,通過豐富的實例和練習,讓讀者能夠將所學知識應用於實際開發中。    覆蓋現代JavaScript: 重點介紹瞭ES6及之後的重要新特性,讓讀者掌握當前主流的JavaScript開發方式。    易於理解的語言: 使用通俗易懂的語言,避免使用過於專業的術語,讓初學者也能輕鬆閱讀。  通過閱讀《JavaScript入門經典(第5版)》,您將能夠建立起紮實的JavaScript基礎,並為進一步學習Web前端開發、Node.js後端開發或其他JavaScript相關領域打下堅實的基礎。本書將是您踏入JavaScript世界的理想起點。