注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡軟件與程序設計JAVA及其相關(guān)JavaScript王者歸來

JavaScript王者歸來

JavaScript王者歸來

定 價:¥86.00

作 者: 月影
出版社: 清華大學出版社
叢編項:
標 簽: 算法語言

ISBN: 9787302173083 出版時間: 2008-01-01 包裝: 平裝
開本: 16 頁數(shù): 712 字數(shù):  

內(nèi)容簡介

  《JavaScript王者歸來》不僅是一本傳播知識的書,更是一本求道的書?!禞avaScript王者歸來》分為五個部分循序漸進地與讀者討論了JavaScript的方方面面,從簡單的語言基礎到豐富的實際應用再到深入剖析語言本質(zhì)的高級話題,字里行間包含著作者多年工作中對JavaScript實踐乃至程序設計思想的深入思考和總結(jié)。《JavaScript王者歸來》揭開了JavaScript的面紗,繞過誤解和虛幻的表象,引領你探索程序王國的奧妙。它既是一本為初學者準備的入門級教程,又是一本探尋程序設計思想本源的“魔法典籍”,也是一本W(wǎng)eb開發(fā)工程師們需要的案頭參考書。《JavaScript王者歸來》是你進入腳本王國的一把鑰匙,引導你領略腳本魔法的神奇魅力。它還是一本著眼于未來改變互聯(lián)網(wǎng)的啟蒙讀物,在它的引領下,你將在互聯(lián)網(wǎng)的世界里獲得你所希望得到的知識、智慧、成就和快樂。

作者簡介

  吳亮,(網(wǎng)名月影),早年曾在微軟亞洲研究院做過訪問學生、在金蝶軟件有限公司先后擔任過核心開發(fā)工程師、設計師和項目經(jīng)理,現(xiàn)任百度電子商務事業(yè)部Web開發(fā)項目經(jīng)理。多年來致力于JavaScript技術(shù)和Web標準的推廣,活躍于國內(nèi)極有影響力的JavaScript專業(yè)網(wǎng)站——無憂腳本(www.51js.com),并任JavaScript版的版主。平時熱愛文學、寫作和圍棋。

圖書目錄

第一部分 概論
 第1章 從零開始
  1.1 為什么選擇JavaScript?    
   1.1.1 用戶的偏好--B/S模式    
   1.1.2 在什么情況下用JavaScript    
   1.1.3 對JavaScript的一些誤解    
    1.1.3.1 JavaScript和Java的關(guān)系    
    1.1.3.2 披著C外衣的Lisp    
    1.1.3.3 關(guān)于JavaScript的思維定勢    
    1.1.3.4 JavaScript是為業(yè)余愛好者設計的?    
    1.1.3.5 JavaScript是面向?qū)ο蟮膯帷   ?br />    1.1.3.6 其他誤解    
   1.1.4 警惕!腳本誘惑    
   1.1.5 隱藏在簡單表象下的復雜度    
   1.1.6 令人迷惑的選擇--錦上添花還是雪中送炭    
   1.1.7 回到問題上來    
  1.2 JavaScript的應用范圍    
   1.2.1 客戶端的JavaScript    
   1.2.2 服務器端的JavaScript    
   1.2.3 其他環(huán)境中的JavaScript    
  1.3 JavaScript的版本    
   1.3.1 瀏覽器中的JavaScript版本    
   1.3.2 其他版本    
  1.4 一些值得留意的特性    
   1.4.1 小把戲--神奇的魔法代碼    
   1.4.2 為客戶端服務--經(jīng)典Hello World!的另一種JavaScript實現(xiàn)    
   1.4.3 數(shù)據(jù)交互--JavaScript的一項強大功能    
   1.4.4 JavaScript表面上的禁忌及如何突破這些禁忌    
  1.5 安全性和執(zhí)行效率    
   1.5.1 數(shù)據(jù)安全--永遠的敏感話題    
   1.5.2 實戰(zhàn)!攻擊與防范    
   1.5.3 不容馬虎--時刻關(guān)注性能    
  1.6 一個例子--JavaScript編寫的計算器    
   1.6.1 從需求分析開始--什么是計算器?    
   1.6.2 系統(tǒng)設計--如何實現(xiàn)計算器?    
   1.6.3 系統(tǒng)實現(xiàn)--計算器的最終實現(xiàn)    
   1.6.4 持續(xù)改進--迭代的軟件開發(fā)過程    
  1.7 學習和使用JavaScript的幾點建議    
   1.7.1 像程序員一樣地思考--程序員的四個境界    
   1.7.2 吝惜你的代碼    
   1.7.3 學會在環(huán)境中調(diào)試    
   1.7.4 警惕那些小缺陷    
   1.7.5 思考先于實踐--不要輕易動手寫代碼    
   1.7.6 時刻回頭--圣賢也無法完全預知未來    
  1.8 關(guān)于本書的其余部分    
 第2章 瀏覽器中的JavaScript
  2.1 嵌入網(wǎng)頁的可執(zhí)行內(nèi)容    
   2.1.1 在什么地方裝載JavaScript代碼    
   2.1.2 關(guān)于代碼的Script標簽    
   2.1.3 我的代碼什么時候被執(zhí)行--不同執(zhí)行期的JavaScript代碼    
   2.1.4 拿來主義--引入外部的JavaScript文件    
  2.2 賞心悅目的特效    
   2.2.1 生命在于運動--DHTML的效果    
   2.2.2 換一種風格--CSS的力量    
   2.2.3 用JavaScript操作DOM--一個可拖動窗口的例子    
  2.3 使用JavaScript來與用戶交互    
   2.3.1 創(chuàng)建一個彈出式幫助和進度條    
   2.3.2 填錯了哦    
  2.4 繞開腳本陷阱    
   2.4.1 現(xiàn)實并不總是完美的    
   2.4.2 不能完全相信你所見到的    
  2.5 總結(jié)    
 第3章 開發(fā)環(huán)境和調(diào)試方法
  3.1 我能用什么來編寫腳本--適合編寫JavaScript的文本編輯器    
  3.2 來自瀏覽器的支持    
   3.2.1 主流瀏覽器    
   3.2.2 非主流瀏覽器    
  3.3 集成開發(fā)環(huán)境    
   3.3.1 什么是集成開發(fā)環(huán)境    
   3.3.2 我需要集成開發(fā)環(huán)境嗎    
   3.3.3 適合JavaScript的集成開發(fā)環(huán)境    
  3.4 調(diào)試工具--提升開發(fā)效率的利器    
   3.4.1 什么是調(diào)試    
   3.4.2 原始的調(diào)試方法--利用輸出語句、“反射”機制和調(diào)試對象來進行調(diào)試    
   3.4.3 適合JavaScript的調(diào)試工具    
  3.5 定位代碼和調(diào)用堆?!   ?br />   3.5.1 Step by Step--單步和斷點    
   3.5.2 監(jiān)視內(nèi)存    
   3.5.3 追蹤問題的源頭--查看調(diào)用堆?!   ?br />   3.5.4 遇到麻煩了--為什么我跟蹤不到代碼    
  3.6 瀏覽器捕獲異常    
   3.6.1 異常處理機制--一個try/catch/finally模式的例子    
   3.6.2 異常的種類    
   3.6.3 應該在什么時候“吃掉”異?!   ?br />  3.7 總結(jié)    
第二部分 JavaScript核心
 第4章 語言結(jié)構(gòu)
  4.1 JavaScript的基本文法    
   4.1.1 字符集    
   4.1.2 大小寫敏感    
   4.1.3 分隔符    
   4.1.4 詞、句子和段落    
   4.1.5 分號    
   4.1.6 標記    
   4.1.7 注釋    
   4.1.8 保留字    
  4.2 常量和變量    
   4.2.1 常量和變量    
   4.2.2 變量的標識符    
   4.2.3 變量的類型    
   4.2.4 變量的聲明    
   4.2.5 變量的作用域    
  4.3 表達式和運算符    
   4.3.1 表達式    
   4.3.2 運算符概述    
   4.3.3 算術(shù)運算符    
   4.3.4 關(guān)系運算符    
   4.3.5 邏輯運算符    
   4.3.6 位運算符    
   4.3.7 賦值運算符    
   4.3.8 其他運算符    
    4.3.8.1 條件運算符    
    4.3.8.2 逗號運算符    
    4.3.8.3 對象運算符    
    4.3.8.4 類型運算符    
    4.3.8.5 void運算符    
    4.3.8.6 函數(shù)調(diào)用運算符    
  4.4 控制語句    
   4.4.1 表達式語句    
   4.4.2 語句塊    
   4.4.3 條件語句    
   4.4.4 循環(huán)語句    
   4.4.5 跳轉(zhuǎn)語句    
   4.4.6 異常處理語句    
   4.4.7 其他語句    
    4.4.7.1 var語句    
    4.4.7.2 function語句    
    4.4.7.3 with語句    
    4.4.7.4 空語句    
  4.5 總結(jié)    
 第5章 數(shù)據(jù)類型
  5.1 基本數(shù)據(jù)類型    
   5.1.1 數(shù)值    
   5.1.2 字符串--一個字符串相關(guān)操作的例子    
   5.1.3 布爾型    
  5.2 數(shù)組和對象    
   5.2.1 數(shù)組    
   5.2.2 對象--一個構(gòu)造函數(shù)的例子    
  5.3 函數(shù)類型--一個函數(shù)和閉包的例子    
  5.4 神奇的null和undefined    
   5.4.1 null    
   5.4.2 undefined--獨一無二的類型    
  5.5 正則表達式    
   5.5.1 正則表達式常量    
   5.5.2 正則表達式對象    
  5.6 值類型和引用類型    
   5.6.1 什么是值和值的引用    
   5.6.2 使用值和使用引用    
   5.6.3 值與引用的相互轉(zhuǎn)換:裝箱和拆箱    
  5.7 類型識別與類型轉(zhuǎn)換    
   5.7.1 運行時類型識別--兩個運行的類型識別的例子    
   5.7.2 類型的自動轉(zhuǎn)換及其例子    
   5.7.3 強制類型轉(zhuǎn)換及其例子    
   5.7.4 高級用法--一個自定義類型轉(zhuǎn)換的例子    
  5.8 警惕數(shù)值陷阱    
   5.8.1 困惑--浮點數(shù)的精度問題    
   5.8.2 誤差的修正及其例子    
  5.9 總結(jié)    
 第6章 函數(shù)
  6.1 函數(shù)定義和函數(shù)調(diào)用    
   6.1.1 函數(shù)的定義    
    6.1.1.1 聲明式函數(shù)定義與函數(shù)表達式及其例子    
    6.1.1.2 JavaScript函數(shù)的奧妙——魔法代碼    
   6.1.2 函數(shù)的調(diào)用    
  6.2 函數(shù)的參數(shù)    
   6.2.1 形參與實參    
   6.2.2 Arguments對象    
    6.2.2.1 一個使用Arguments對象檢測形參的例子    
    6.2.2.2 一個使用Arguments對象接收任意個數(shù)參數(shù)的例子    
    6.2.2.3 一個使用Arguments對象模擬函數(shù)重載的例子    
   6.2.3 參數(shù)類型匹配--一個利用arguments實現(xiàn)函數(shù)重載機制的例子    
  6.3 函數(shù)的調(diào)用者和所有者    
   6.3.1 函數(shù)的調(diào)用者    
   6.3.2 函數(shù)的所有者--一個為函數(shù)指定所有者的例子    
   6.3.3 動態(tài)調(diào)用--外來的所有者    
  6.4 函數(shù)常量和閉包    
   6.4.1 匿名的函數(shù)    
   6.4.2 函數(shù)引用    
   6.4.3 函數(shù)參數(shù)和函數(shù)返回值及其例子    
   6.4.4 高級用法--閉包作為局部域與延遲求值    
  6.5 高級抽象--Function類型和函數(shù)模版    
   6.5.1 動態(tài)創(chuàng)建函數(shù)--一個利用Function實現(xiàn)Lambda算子的例子    
   6.5.2 模式--函數(shù)工廠及其實例    
  6.6 總結(jié)    
 第7章 對象
  7.1 什么是對象    
  7.2 對象的屬性和方法    
   7.2.1 對象的內(nèi)置屬性    
   7.2.2 為對象添加和刪除屬性    
   7.2.3 反射機制--枚舉對象屬性    
  7.3 對象的構(gòu)造    
   7.3.1 構(gòu)造函數(shù)--一個雙精度浮點數(shù)封裝類的例子    
   7.3.2 缺省構(gòu)造和拷貝構(gòu)造    
   7.3.3 對象常量    
  7.4 對象的銷毀和存儲單元的回收    
  7.5 JavaScript的內(nèi)置對象    
   7.5.1 Math對象    
   7.5.2 Date對象--創(chuàng)建一個簡單的日歷    
   7.5.3 Error對象    
   7.5.4 其他內(nèi)置對象    
   7.5.5 特殊的對象--全局對象與調(diào)用對象    
  7.6 總結(jié)    
 第8章 集合
  8.1 數(shù)組和數(shù)組元素    
   8.1.1 數(shù)組的構(gòu)造    
   8.1.2 數(shù)組常量    
   8.1.3 數(shù)組元素    
  8.2 數(shù)組對象和方法    
   8.2.1 查找元素    
   8.2.2 添加和刪除元素    
   8.2.3 集合操作及其范例    
    8.2.3.1 join()方法    
    8.2.3.2 reverse()方法    
    8.2.3.3 sort()方法    
    8.2.3.4 concat()方法    
    8.2.3.5 slice()方法    
    8.2.3.6 splice()方法    
    8.2.3.7 toSgring()方法和toLocaleString()方法    
  8.3 哈希表    
   8.3.1 什么是哈希表    
   8.3.2 哈希表的構(gòu)造    
   8.3.3 實現(xiàn)一個簡單的HashTable類型    
  8.4 高級用法--集合操作和閉包    
  8.5 總結(jié)    
 第9章 字符串
  9.1 字符串的構(gòu)造    
   9.1.1 字符串常量    
   9.1.2 轉(zhuǎn)義序列    
   9.1.3 字符串構(gòu)造函數(shù)    
  9.2 字符串的使用    
   9.2.1 比較字符串    
   9.2.2 抽取和檢索子串    
   9.2.3 連接拆分字符串    
   9.2.4 字符串的模式匹配--一個字符串格式校驗的例子    
   9.2.5 其他方法    
  9.3 字符串與字符數(shù)組    
  9.4 字符串與文本處理--JavaScript棋譜閱讀器(一)    
   9.4.1 需求分析--什么是棋譜和棋譜閱讀器    
   9.4.2 系統(tǒng)設計--棋譜和棋盤數(shù)據(jù)的字符串描述    
   9.4.3 系統(tǒng)實現(xiàn)--解析和處理棋譜    
   9.4.4 完整的棋譜閱讀器    
  9.5 總結(jié)    
 第10章 正則表達式
  10.1 什么是正則表達式    
   10.1.1 正則表達式的概念    
   10.1.2 JavaScript中的正則表達式    
  10.2 正則表達式的規(guī)則    
   10.2.1 直接量字符    
   10.2.2 字符類和布爾操作    
   10.2.3 重復    
   10.2.4 選擇、分組和引用    
   10.2.5 指定匹配的位置    
   10.2.6 標志——高級模式匹配的規(guī)則    
  10.3 模式匹配    
   10.3.1 用于模式匹配的String方法及其例子    
   10.3.2 用于模式匹配的RegExp方法    
    10.3.2.1 一個使用exec()方法從身份證號碼獲取生日的例子    
    10.3.2.2 一個使用test()方法遍歷字符串的例子    
  10.4 關(guān)于正則表達式包裝對象    
   10.4.1 RegExp對象——利用正則表達式實現(xiàn)全文檢索    
   10.4.2 RegExp的實例屬性    
  10.5 強大的正則表達式    
   10.5.1 分析正則表達式的局部    
   10.5.2 一個例子--強大的在線編輯器    
   10.5.3 構(gòu)造新的文法--一個在JSVM中實現(xiàn)JSVM2解析器的例子    
  10.6 高級用法    
  10.7 用正則表達式處理文本    
   10.7.1 創(chuàng)建一個計價公式編輯器    
    10.7.1.1 需求分析--什么是計價公式編輯器    
    10.7.1.2 系統(tǒng)實現(xiàn)--計價公式編輯器的實現(xiàn)    
   10.7.2 創(chuàng)建一個同步滾動歌詞播放器    
    10.7.2.1 需求分析--什么是同步滾動歌詞播放器    
    10.7.2.2 系統(tǒng)設計與實現(xiàn)--處理LRC歌詞    
  10.8 總結(jié)    
第三部分 瀏覽器與DOM
 第11章 瀏覽器對象
  11.1 Window對象--最基本的瀏覽器對象    
   11.1.1 Window對象概覽    
   11.1.2 Window對象的生命周期    
   11.1.3 Window對象的屬性和方法    
   11.1.4 一個多窗口應用的例子    
  11.2 Document對象--瀏覽器窗口文檔內(nèi)容的代表    
   11.2.1 Document對象概覽    
   11.2.2 動態(tài)生成的文檔    
   11.2.3 Document對象的基本信息    
   11.2.4 Document對象的外觀屬性    
   11.2.5 Document子對象接口    
    11.2.5.1 一個遍歷Anchors對象的例子    
    11.2.5.2 一個顛倒圖片的例子    
  11.3 對話框和狀態(tài)欄    
   11.3.1 創(chuàng)建一個簡單對話框    
   11.3.2 其他類型的對話框    
    11.3.2.1 模擬對話框--創(chuàng)建一個窗口對話框及一個對話框阻塞進行的例子    
    11.3.2.2 showModalDialog和showModelessDialog--非W3C或ECMAScrip標準    
   11.3.3 狀態(tài)欄    
  11.4 框架--上層的Window對象    
   11.4.1 多框架應用    
   11.4.2 框架之間的關(guān)系    
   11.4.3 框架的命名    
   11.4.4 子框架中的JavaScript    
   11.4.5 框架的應用--多頁簽顯示    
    11.4.5.1 什么是頁簽    
    11.4.5.2 頁簽的實現(xiàn)--創(chuàng)建一個包含頁簽的頁面    
  11.5 表單和表單對象    
   11.5.1 Form對象及其范例    
   11.5.2 定義表單元素    
   11.5.3 客戶端表單校驗及其例子    
   11.5.4 創(chuàng)建一款通用的客戶端表單校驗組件    
  11.6 其他內(nèi)置對象    
   11.6.1 Navigator對象--瀏覽器總體信息的代表    
   11.6.2 Screen對象--提供顯示器分辨率和可用顏色數(shù)量信息    
   11.6.3 Location對象--當前窗口中顯示文檔的URL的代表    
   11.6.4 History對象--一個有趣的對象    
  11.7 總結(jié)    
 第12章 文檔對象模型
  12.1 什么是DOM    
   12.1.1 把文檔表示為樹    
   12.1.2 樹的節(jié)點    
   12.1.3 DOM對象的通用屬性和方法    
   12.1.4 HTML結(jié)構(gòu)和DOM對象的關(guān)系--用JavaScript通過DOM來操作HTML文檔    
  12.2 DOM與瀏覽器實現(xiàn)    
   12.2.1 關(guān)于DOM HTML API    
   12.2.2 DOM的級別和特性    
   12.2.3 DOM的一致性    
   12.2.4 差異性--瀏覽器的DOM方言    
  12.3 一組“盒子”--DOM元素    
   12.3.1 嵌套的“盒子”    
   12.3.2 “盒子”和“盒子”內(nèi)容的分類    
  12.4 創(chuàng)建和刪除節(jié)點    
   12.4.1 構(gòu)造全新的節(jié)點    
   12.4.2 平面展開--通過文檔元素直接創(chuàng)建    
   12.4.3 回收空間--刪除不用的節(jié)點    
  12.5 訪問和操縱DOM節(jié)點    
   12.5.1 打開每一個盒子--遍歷節(jié)點    
   12.5.2 弄清層級關(guān)系--父子與兄弟    
   12.5.3 如何搜索特定節(jié)點    
   12.5.4 克隆節(jié)點--一個使用cloneNode()復制表格的例子    
   12.5.5 移動節(jié)點及其范例    
   12.5.6 關(guān)于添加新行和排序的小技巧    
  12.6 讀寫數(shù)據(jù)--添加、修改和刪除屬性    
  12.7 外觀與行為    
   12.7.1 DOM樣式屬性    
   12.7.2 控制DOM元素的顯示與隱藏    
   12.7.3 改變顏色和大小--一個簡單有趣的例子    
   12.7.4 改變位置--創(chuàng)建一個繞圓圈旋轉(zhuǎn)的文字    
   12.7.5 編輯控制及其范例    
   12.7.6 改變樣式及其范例    
   12.7.7 改變行為    
  12.8 XML DOM    
   12.8.1 什么是XML DOM    
   12.8.2 如何使用XML DOM--一個利用XML實現(xiàn)多級關(guān)聯(lián)下拉選擇框的例子    
  12.9 總結(jié)    
 第13章 事件處理
  13.1 什么是事件    
   13.1.1 消息與事件響應    
   13.1.2 瀏覽器的事件驅(qū)動機制    
  13.2 基本事件處理    
   13.2.1 事件和事件類型    
   13.2.2 事件的綁定    
   13.2.3 直接調(diào)用事件處理函數(shù)    
   13.2.4 事件處理函數(shù)的返回值    
   13.2.5 帶參數(shù)的事件響應及其例子    
   13.2.6 “this”關(guān)鍵字    
  13.3 標準事件模型    
   13.3.1 起泡和捕捉--瀏覽器的事件傳播    
   13.3.2 事件處理函數(shù)的注冊    
   13.3.3 把對象注冊為事件處理程序    
   13.3.4 事件模塊和事件類型    
   13.3.5 關(guān)于Event接口    
    13.3.5.1 Event接口的屬性和方法    
    13.3.5.2 UIEvent接口的屬性    
    13.3.5.3 MouseEvent接口的屬性    
    13.3.5.4 MutationEvent接口    
   13.3.6 混合事件模型    
   13.3.7 合成事件    
  13.4 瀏覽器的事件處理模型實現(xiàn)    
   13.4.1 Internet Explorer事件模型    
    13.4.1.1 關(guān)于IE事件注冊    
    13.4.1.2 IE Event對象的屬性    
    13.4.1.3 IE中的事件起泡    
   13.4.2 Netscape 4事件模型    
    13.4.2.1 Netscape 4中的事件捕捉及其范例    
    13.4.2.2 Netscape 4 Event對象的屬性    
  13.5 回調(diào)與用戶自定義事件    
   13.5.1 事件處理模式--一個實現(xiàn)簡單事件處理模式的例子    
   13.5.2 用戶事件接口的定義    
   13.5.3 事件代理和事件注冊--一個實現(xiàn)標準事件接口的例子    
   13.5.4 標準模式--事件分派和接收    
  13.6 一個例子--增強數(shù)據(jù)表格    
   13.6.1 什么是增強數(shù)據(jù)表格    
   13.6.2 一個采用兩重table嵌套方式固定表頭的例子    
   13.6.3 可變列寬的實現(xiàn)    
   13.6.4 標記行--呈現(xiàn)有別于其他行的背景色    
   13.6.5 小技巧--將代碼添加到樣式表    
  13.7 總結(jié)    
 第14章 級聯(lián)樣式表
  14.1 什么是級聯(lián)樣式表    
   14.1.1 CSS樣式和樣式表    
   14.1.2 CSS的標準化    
   14.1.3 瀏覽器支持的CSS    
  14.2 JavaScript與CSS    
   14.2.1 CSS和DOM的關(guān)系    
   14.2.2 CSS和IE的關(guān)系    
   14.2.3 瀏覽器的CSS兼容性    
  14.3 控制CSS改變頁面風格    
   14.3.1 實現(xiàn)結(jié)構(gòu)與表現(xiàn)的分離及其范例    
   14.3.2 使用JwaScript和CSS實現(xiàn)頁面多種風格的實時替換    
  14.4 總結(jié)    
 第15章 數(shù)據(jù)存儲的腳本化
  15.1 什么是cookie    
   15.1.1 瀏覽器和客戶端cookie    
   15.1.2 cookie的屬性    
  15.2 cookie的客戶端存取    
   15.2.1 cookie的存儲    
   15.2.2 cookie的讀取    
  15.3 cookie的限制    
  15.4 cookie示例--讓問候更加溫暖    
  15.5 cookie對象的封裝    
  15.6 什么是userData    
   15.6.1 瀏覽器和客戶端userData    
   15.6.2 userData的聲明    
   15.6.3 userData的屬性和方法    
  15.7 userData的客戶端存取    
   15.7.1 userData的存儲和讀取    
   15.7.2 userData的安全性    
  15.8 userData的限制    
  15.9 userData與cookie的對比    
  15.10 userData示例--一個利用userData實現(xiàn)客戶端保存表單數(shù)據(jù)的例子    
  15.11 總結(jié)    
第四部分 數(shù)據(jù)交互
 第16章 同步和異步
  16.1 什么是同步和異步    
  16.2 超時設定和時間間隔    
  16.3 定時器使用--偵聽與攔截    
   16.3.1 標準模式--監(jiān)視器及其范例    
   16.3.2 使用定時器時應當注意的問題    
  16.4 一個例子--漂亮的Web時鐘    
   16.4.1 什么是Web時鐘?    
   16.4.2 最簡單的Web時鐘    
   16.4.3 Web時鐘的設計    
   16.4.4 完整的Web時鐘源代碼    
  16.5 總結(jié)    
 第17章 XML DOM和XML HTTP
  17.1 什么是XML DOM對象    
   17.1.1 XML DOM簡介    
   17.1.2 瀏覽器支持的XML DOM接口    
    17.1.2.1 XML DOM標準接口    
    17.1.2.2 IE的XML DOM組件    
    17.1.2.3 操作XML文檔--一個使用MSXML操作XML文檔的例子    
  17.2 XML DOM的版本兼容性--XML DOM的跨瀏覽器應用    
  17.3 XML DOM的錯誤處理    
   17.3.1 處理錯誤信息的ParseError對象    
   17.3.2 包含錯誤信息的文檔    
  17.4 XML DOM操作XML文檔    
   17.4.1 訪問節(jié)點    
   17.4.2 創(chuàng)建新節(jié)點    
   17.4.3 移動和修改節(jié)點及其范例    
   17.4.4 讀寫節(jié)點屬性和讀寫數(shù)據(jù)    
   17.4.5 保存文檔    
  17.5 一個例子--JavaScript棋譜閱讀器(二)    
   17.5.1 用XML描述棋譜    
   17.5.2 將XML棋譜轉(zhuǎn)換為SGF棋譜    
  17.6 什么是XML HTTP對象    
   17.6.1 XML HTTP對象簡介    
   17.6.2 瀏覽器支持的XML HTTP對象    
  17.7 通過XML HTTP發(fā)送請求    
   17.7.1 建立連接    
   17.7.2 發(fā)送請求    
  17.8 讀取和設定HTTP頭    
   17.8.1 什么是HTTP頭    
   17.8.2 讀取和設定HTTP頭    
  17.9 服務器應答    
   17.9.1 同步和異步應答及其例子    
   17.9.2 包含應答文本內(nèi)容的ResponseText 和ResponseXML    
  17.10 總結(jié)    
 第18章 Ajax簡介
  18.1 什么是Ajax    
   18.1.1 Ajax并不神秘    
   18.1.2 Ajax的應用場景    
   18.1.3 Ajax的競爭對手--其他替代技術(shù)    
  18.2 Ajax初探--我的第一個Ajax程序    
   18.2.1 從常規(guī)應用開始--一個簡單的實時聊天室    
   18.2.2 討厭的頁面刷新    
   18.2.3 無刷新解決方案--改進的聊天室    
   18.2.4 異步工作--遲滯感的解決方案    
  18.3 Ajax原理剖析    
   18.3.1 XML HTTP實時通信及一個簡單封裝了AjaxProxy對象的例子    
   18.3.2 數(shù)據(jù)動態(tài)顯示--Ajax改善交互體驗的重要特點    
   18.3.3 發(fā)揮XML的能力    
   18.3.4 用JavaScript綁定一切    
   18.3.5 應用背后的標準    
  18.4 Ajax范例--實時聊天工具    
   18.4.1 什么是實時聊天工具    
   18.4.2 需求分析--實時聊天功能的實現(xiàn)要點    
   18.4.3 系統(tǒng)實現(xiàn)--實時聊天功能的實現(xiàn)    
   18.4.4 小結(jié)    
  18.5 總結(jié)    
 第19章 標準和兼容性
  19.1 標準化組織    
   19.1.1 W3C和DOM標準    
   19.1.2 ECMA和JavaScript標準    
   19.1.3 互聯(lián)網(wǎng)標準    
  19.2 平臺和瀏覽器的兼容性    
   19.2.1 最小公分母法    
   19.2.2 防御性編碼    
   19.2.3 客戶端探測器    
   19.2.4 特性檢測    
   19.2.5 實現(xiàn)標準    
   19.2.6 適度停止運行    
  19.3 語言版本的兼容性    
   19.3.1 language屬性    
   19.3.2 版本測試    
  19.4 如何實現(xiàn)跨瀏覽器應用    
   19.4.1 取舍--劃定支持范圍    
   19.4.2 基礎模塊設計--獨立兼容性檢測    
   19.4.3 劃分運行級別    
   19.4.4 給出正確的信息--不要讓你的代碼保持沉默    
   19.4.5 充分的應用測試--“兼容性魔鬼”總會趁你不注意時“踢你的狗”    
   19.4.6 靠近標準和就近原則    
 19.5 展望未來    
  19.6 總結(jié)    
 第20章 信息安全
  20.1 用戶的隱私信息    
  20.2 禁止和受限制的操作    
   20.2.1 受限制的屬性    
   20.2.2 受限制的操作    
   20.2.3 腳本安全級別    
   20.2.4 腳本調(diào)試    
  20.3 警惕幕后的攻擊者    
   20.3.1 攻擊的手段    
   20.3.2 隱匿的數(shù)據(jù)流    
   20.3.3 頁面?zhèn)窝b    
   20.3.4 發(fā)現(xiàn)蛛絲馬跡    
   20.3.5 防范的手段    
    20.3.5.1 傳輸數(shù)據(jù)的加密    
    20.3.5.2 對用戶隱藏源代碼    
  20.4 同源策略    
   20.4.1 什么是同源策略    
   20.4.2 同源策略的利弊    
   20.4.3 突破同源策略    
  20.5 安全區(qū)和簽名腳本    
   20.5.1 可配置的安全策略方案    
   20.5.2 Internet Explorer的安全區(qū)    
   20.5.3 Netscape的簽名腳本    
  20.6 代碼本身的安全--加密和混淆    
   20.6.1 為什么要加密和混淆    
   20.6.2 客戶端的加密技術(shù)及其例子    
   20.6.3 代碼混淆原理    
   20.6.4 JavaScript代碼混淆工具--一個代碼混淆算法的例子    
   20.6.5 加密和混淆的結(jié)合使用    
  20.7 總結(jié)    
第五部分 超越JavaScript
 第21章 面向?qū)ο?br />  21.1 什么面向?qū)ο蟆   ?br />   21.1.1 類和對象    
   21.1.2 公有和私有--屬性的封裝    
   21.1.3 屬性和方法的類型    
  21.2 神奇的prototype    
   21.2.1 什么是prototype    
   21.2.2 prototype的使用技巧    
    21.2.2.1 給原型對象添加屬性    
    21.2.2.2 帶默認值的Point對象    
    21.2.2.3 delete操作將對象屬性恢復為默認值    
    21.2.2.4 使用prototype巧設getter    
    21.2.2.5 delete操作恢復原型屬性的可見性    
    21.2.2.6 使用prototype創(chuàng)建大量副本    
    21.2.2.7 使用prototype定義靜態(tài)方法    
   21.2.3 prototype的實質(zhì)及其范例    
   21.2.4 prototype的價值與局限性    
  21.3 繼承與多態(tài)    
   21.3.1 什么是繼承    
   21.3.2 實現(xiàn)繼承的方法    
    21.3.2.1 構(gòu)造繼承法及其例子    
    21.3.2.2 原型繼承法及其例子    
    21.3.2.3 實例繼承法及其例子    
    21.3.2.4 拷貝繼承法及其例子    
    21.3.2.5 幾種繼承法的比較    
    21.3.2.6 混合繼承法及其例子    
   21.3.3 單繼承與多重繼承    
   21.3.4 接口及其實現(xiàn)    
   21.3.5 多態(tài)及其實現(xiàn)    
  21.4 構(gòu)造與析構(gòu)    
   21.4.1 構(gòu)造函數(shù)    
   21.4.2 多重構(gòu)造    
   21.4.3 析構(gòu)    
  21.5 疑團!“this”迷宮    
   21.5.1 無數(shù)個陷阱--令人困擾的“this”謎團    
    21.5.1.1 this代詞的運用    
    21.5.1.2 this“陷阱”    
    21.5.1.3 this代詞的異步問題    
   21.5.2 偷梁換柱--不好的使用習慣    
   21.5.3 異步調(diào)用--誰動了我的“this”    
   21.5.4 揭開真相--JavaScript的“this”本質(zhì)    
   21.5.5 困難不再--利用閉包修正“this”引用    
  21.6 包裝對象    
   21.6.1 區(qū)分值和引用    
   21.6.2 裝箱與拆箱    
  21.7 元類,類的模板    
   21.7.1 什么是元類    
   21.7.2 元類--構(gòu)造類的類    
   21.7.3 為什么要用元類    
   21.7.4 類工廠    
    21.7.4.1 什么是類工廠    
    21.7.4.2 為什么要建立類工廠    
  21.8 誰才是造物主    
   21.8.1 萬物適用的準則    
   21.8.2 抽象的極致--一個抽象模式的例子    
   21.8.3 返璞歸真,同源架構(gòu)    
  21.9 總結(jié)    
 第22章 閉包與函數(shù)式編程
  22.1 動態(tài)語言與閉包    
   22.1.1 動態(tài)語言    
   22.1.2 語法域和執(zhí)行域    
   22.1.3 JavaScript的閉包--一個體現(xiàn)閉包本質(zhì)的例子    
  22.2 閉包的特點與形式    
   22.2.1 閉包的內(nèi)在--自治的領域    
   22.2.2 訪問外部環(huán)境--一個用閉包改變外部環(huán)境的例子    
   22.2.3 閉包和面向?qū)ο蟆   ?br />   22.2.4 其他形式的閉包    
  22.3 不適合使用閉包的場合    
  22.4 函數(shù)式編程    
   22.4.1 什么是函數(shù)式編程    
    22.4.1.1 函數(shù)是第一型    
    22.4.1.2 閉包與函數(shù)式編程    
    22.4.1.3 科里化(Currying)--一個有趣的概念    
    22.4.1.4 延遲求值和延續(xù)--一個Fibonacci無窮數(shù)列的例子    
   22.4.2 函數(shù)式編程、公式化與數(shù)學模型--一個拋物線方程的例子    
   22.4.3 函數(shù)式編程的優(yōu)點    
    22.4.3.1 單元測試方面的優(yōu)點    
    22.4.3.2 調(diào)試方面的優(yōu)點    
    22.4.3.3 并行方面的優(yōu)點    
    22.4.3.4 代碼熱部署方面的優(yōu)點    
    22.4.3.5 機器輔助的推理和優(yōu)化    
   22.4.4 函數(shù)式編程的缺點    
    22.4.4.1 閉包的副作用    
    22.4.4.2 遞歸的形式    
    22.4.4.3 延遲求值的副作用    
  22.5 閉包與面向?qū)ο蟆   ?br />   22.5.1 私有域    
   22.5.2 名字空間管理    
   22.5.3 友元--一個非常有趣的概念    
  22.6 Python風格的JavaScript代碼    
   22.6.1 最簡約代碼    
   22.6.2 輕量級重用    
    22.6.2.1 JSON    
    22.6.2.2 Functional    
    22.6.2.3 迭代函數(shù)--一個Array迭代函數(shù)的例子    
   22.6.3 模塊管理及其范例    
  22.7 總結(jié)    
 第23章 模塊級管理
  23.1 模塊化管理    
   23.1.1 模塊化--代碼的重用    
   23.1.2 JavaScript的模塊管理    
  23.2 開放封閉原則和面向接口    
   23.2.1 開放封閉原則    
   23.2.2 面向接口    
  23.3 名字空間管理    
   23.3.1 什么是名字空間    
   23.3.2 為什么要用名字空間    
   23.3.3 JavaScript的名字空間管理    
  23.4 調(diào)用依賴    
   23.4.1 模塊的依賴性    
   23.4.2 模塊依賴的管理    
  23.5 用代碼管理代碼    
   23.5.1 運行時環(huán)境的管理    
   23.5.2 托管代碼--一個簡單的托管代碼“容器”    
   23.5.3 一個完整的代碼管理容器    
  23.6 總結(jié)    
 第24章 動態(tài)構(gòu)建
  24.1 讓代碼去寫代碼    
   24.1.1 腳本的動態(tài)解析    
   24.1.2 語法擴展--創(chuàng)造屬于自己的語言    
  24.2 “發(fā)明”語法    
   24.2.1 正則表達式和語法解析及例子    
   24.2.2 一個簡單的語法解析器實現(xiàn)    
    24.2.2.1 什么是JavaScript 2.0語法    
    24.2.2.2 JavaScript 2.0語法的部分關(guān)鍵特性實現(xiàn)    
  24.3 實現(xiàn)自己的方言--LispScript    
   24.3.1 從JavaScript到Lisp    
   24.3.2 最初的工作--一般JavaScript代碼    
   24.3.3 公理,表達式    
   24.3.4 函數(shù)式編程的七條基本公設    
    24.3.4.1 “引用”公設    
    24.3.4.2 “原子”公設    
    24.3.4.3 “等值”公設    
    24.3.4.4 “表頭”公設    
    24.3.4.5 “余表”公設    
    24.3.4.6 “和表”公設    
    24.3.4.7 “條件”公設    
   24.3.5 函數(shù)文法    
   24.3.6 使用LispScript定義新函數(shù)    
   24.3.7 一個驚喜--_eval    
   24.3.8 其他的擴展    
   24.3.9 小結(jié)    
   24.3.10 運行環(huán)境和代碼容器——看看“新發(fā)明”的LispScript的實際表現(xiàn)    
24.4 總結(jié)    
 第25章 執(zhí)行效率
  25.1 為什么要討論執(zhí)行效率    
   25.1.1 來自客戶的抱怨--JavaScript能有多慢    
   25.1.2 代碼慢下來是誰的錯    
  25.2 封閉的代價    
   25.2.1 過度封裝的性能問題    
   25.2.2 信息隱藏的利弊    
   25.2.3 構(gòu)造對象的開銷    
  25.3 盒子里的流火    
   25.3.1 DOM的內(nèi)存開銷    
   25.3.2 瀏覽器的內(nèi)存管理    
   25.3.3 看清一個事實--內(nèi)存泄漏的存在    
   25.3.4 注意--及時關(guān)閉你的“盒子”    
   25.3.5 一些誤會的澄清    
    25.3.5.1 腳本動態(tài)創(chuàng)建DOM導致內(nèi)存泄漏    
    25.3.5.2 閉包導致內(nèi)存泄漏    
  25.4 動態(tài)--魔鬼與天使    
   25.4.1 動態(tài)解析的性能分析--一個動態(tài)特性的效率測試    
   25.4.2 開發(fā)效率與執(zhí)行效率--永遠的困難選擇    
   25.4.3 優(yōu)美與適用--學會經(jīng)受魔鬼的誘惑    
   25.4.4 扮演客戶眼中的天使    
  25.5 讓代碼輕舞飛揚    
   25.5.1 簡單就是美--為代碼瘦身    
   25.5.2 最完美的運用是不用    
   25.5.3 高度抽象是為了簡化問題    
   25.5.4 邏輯和表達同樣重要    
   25.5.5 保持代碼的嚴謹    
   25.5.6 漂亮的書寫風格--讓閱讀者心情愉快    
  25.6 總結(jié)    
 第26章 應用框架
  26.1 應用框架概覽    
   26.1.1 什么是應用框架    
   26.1.2 應用框架的組成部分    
    26.1.2.1 類庫    
    26.1.2.2 核心模塊    
    26.1.2.3 環(huán)境配置    
    26.1.2.4 使用手冊    
  26.2 為什么要設計應用框架    
   26.2.1 應用框架的適用范圍    
   26.2.2 應用框架的利弊    
  26.3 如何設計應用框架    
   26.3.1 把握設計的目標    
   26.3.2 應用框架的設計準則    
   26.3.3 什么樣的應用框架才是成熟的應用框架    
   26.3.4 應用框架的設計方法    
   26.3.5 實戰(zhàn)!設計一個簡單的應用框架    
    26.3.5.1 自描述    
    26.3.5.2 基礎接口和語義型代碼    
    26.3.5.3 核心對象的原型擴展    
    26.3.5.4 簡單方法    
    26.3.5.5 名字空間    
    26.3.5.6 支持標準和跨瀏覽器    
    26.3.5.7 事件模型--Silverna的事件模型    
    26.3.5.8 應用模式    
    26.3.5.9 提供Ajax組件    
    26.3.5.10 內(nèi)存管理和其他    
  26.4 框架的實際應用--在Silverna 2.0框架上開發(fā)的Widgets    
  26.5 已存在的應用框架    
   26.5.1 Prototype    
   26.5.2 JQuery    
   26.5.3 Dojo    
   26.5.4 JSVM    
   26.5.5 其他框架    
    26.5.5.1 Bindows(成立于2003年)    
    26.5.5.2 BackBase (成立于2003年)    
    26.5.5.3 DOJO (開發(fā)中,成立于2004年9月)    
    26.5.5.4 Open Rico(開發(fā)中,成立于2005年5月,基于早期的一個proprietary框架)    
    26.5.5.5 qooxdoo (開發(fā)中,成立于2005年5月)    
    26.5.5.6 Tibet (開發(fā)中,創(chuàng)建于2005年6月)    
    26.5.5.7 AJFORM (創(chuàng)建于2005年6月)    
  26.6 總結(jié)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號