《JavaScript王者歸來》是2008年清華大學出版社出版的圖書,作者是月影。本書是一本為初學者準備的入門級教程,又是一本探尋程式設計思想本源的“魔法典籍”,也是一本Web開發工程師們需要的案頭參考書。
基本介紹
- 書名:JavaScript王者歸來
- 作者:月影
- ISBN:9787302173083
- 類別:圖書 >> 計算機/網路 >> 程式設計 >> Java Java Script J2EE
- 頁數: 712
- 定價:82.00
- 出版社:清華大學出版社
- 出版時間: 2008-7-1
- 開本:16開
- 字 數:: 1347000
- 版 次:: 1
內容簡介,編輯推薦,內容簡介,作者簡介,圖書目錄,
內容簡介
《JavaScript王者歸來》分為五個部分循序漸進地與讀者討論了JavaScript的方方面面,從簡單的語言基礎到豐富的實際套用再到深入剖析語言本質的高級話題,字裡行間包含著作者多年工作中對JavaScript實踐乃至程式設計思想的深入思考和總結。本書揭開了JavaScript的面紗,繞過誤解和虛幻的表象,引領你探索程式王國的奧妙。
編輯推薦
腳本神力與你同在,無憂版主月影力作。
這是一本尋求JavaScript解決之道的書,這是一本探尋程式設計思想本源的“魔法典籍”,從簡單的語言基礎到豐富的實際套用再到語言本質的深入剖析,字裡行間包含作者對JavaScript實踐乃至程式設計思想的深入思考和總結。腳本攻擊就在黎明發起。
內容簡介
你手中的這本《JavaScript王者歸來》不僅是一本傳播知識的書,更是一本求道的書。
本書是你進入腳本王國的一把鑰匙,引導你領略腳本魔法的神奇魅力。它還是一本著眼於未來改變網際網路的啟蒙讀物,在它的引領下,你將在網際網路的世界裡獲得你所希望得到的知識、智慧、成就和快樂。
作者簡介
吳亮,(網名月影),早年曾在微軟亞洲研究院做過訪問學生、在金蝶軟體有限公司先後擔任過核心開發工程師、設計師和項目經理,現任百度電子商務事業部Web開發項目經理。多年來致力於JavaScript技術和Web標準的推廣,活躍於國內極有影響力的JavaScript專業網站——無憂腳本,並任JavaScript版的版主。平時熱愛文學、寫作和圍棋。
圖書目錄
第一部分 概論
第1章 從零開始
1.1 為什麼選擇JavaScript?
1.2 JavaScript的套用範圍
1.3 JavaScript的版本
1.4 一些值得留意的特性 禁忌及如何突破這些禁忌
1.5 安全性和執行效率
1.6 一個例子--JavaScript編寫的計算器
1.7 學習和使用JavaScript的幾點建議
1.8 關於本書的其餘部分
第2章 瀏覽器中的JavaScript
2.1 嵌入網頁的可執行內容
2.2 賞心悅目的特效
2.3 使用JavaScript來與用戶互動
2.4 繞開腳本陷阱 2.5 總結
第3章 開發環境和調試方法
3.1 我能用什麼來編寫腳本--適合編寫JavaScript的文本編輯器
3.2 來自瀏覽器的支持
3.3 集成開發環境
3.4 調試工具--提升開發效率的利器
3.5 定位代碼和調用堆疊
3.6 瀏覽器捕獲異常
3.7 總結
第二部分 JavaScript核心
第4章 語言結構
4.1 JavaScript的基本文法
4.2 常量和變數
4.3 表達式和運算符符
4.4 控制語句 句
4.5 總結
第5章 數據類型
5.1 基本數據類型
5.2 數組和對象
5.2.1 數組
5.2.2 對象--一個構造函式的例子
5.3 函式類型--一個函式和閉包的例子
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 值與引用的相互轉換:裝箱和拆箱
5.7 類型識別與類型轉換
5.7.1 運行時類型識別--兩個運行的類型識別的例子
5.7.2 類型的自動轉換及其例子
5.7.3 強制類型轉換及其例子
5.7.4 高級用法--一個自定義類型轉換的例子
5.8 警惕數值陷阱
5.8.1 困惑--浮點數的精度問題
5.8.2 誤差的修正及其例子
5.9 總結
第6章 函式
6.1 函式定義和函式調用
6.1.1 函式的定義
6.1.1.1 聲明式函式定義與函式表達式及其例子
6.1.1.2 JavaScript函式的奧妙——魔法代碼
6.1.2 函式的調用
6.2 函式的參數
6.2.1 形參與實參
6.2.2 Arguments對象
6.2.2.1 一個使用Arguments對象檢測形參的例子
6.2.2.2 一個使用Arguments對象接收任意個數參數的例子
6.2.2.3 一個使用Arguments對象模擬函式重載的例子
6.2.3 參數類型匹配--一個利用arguments實現函式重載機制的例子
6.3 函式的調用者和所有者
6.3.1 函式的調用者
6.3.2 函式的所有者--一個為函式指定所有者的例子
6.3.3 動態調用--外來的所有者
6.4 函式常量和閉包
6.4.1 匿名的函式
6.4.2 函式引用
6.4.3 函式參數和函式返回值及其例子
6.4.4 高級用法--閉包作為局部域與延遲求值
6.5 高級抽象--Function類型和函式模版
6.5.1 動態創建函式--一個利用Function實現Lambda運算元的例子
6.5.2 模式--函式工廠及其實例
6.6 總結
第7章 對象
7.1 什麼是對象
7.2 對象的屬性和方法
7.2.1 對象的內置屬性
7.2.2 為對象添加和刪除屬性
7.2.3 反射機制--枚舉對象屬性
7.3 對象的構造
7.3.1 構造函式--一個雙精度浮點數封裝類的例子
7.3.2 預設構造和拷貝構造
7.3.3 對象常量
7.4 對象的銷毀和存儲單元的回收
7.5 JavaScript的內置對象
7.5.1 Math對象
7.5.2 Date對象--創建一個簡單的日曆
7.5.3 Error對象
7.5.4 其他內置對象
7.5.5 特殊的對象--全局對象與調用對象
7.6 總結
第8章 集合
8.1 數組和數組元素
8.1.1 數組的構造
8.1.2 數組常量
8.1.3 數組元素
8.2 數組對象和方法
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 哈希表的構造
8.3.3 實現一個簡單的HashTable類型
8.4 高級用法--集合操作和閉包
8.5 總結
第9章 字元串
9.1 字元串的構造
9.1.1 字元串常量
9.1.2 轉義序列
9.1.3 字元串構造函式
9.2 字元串的使用
9.2.1 比較字元串
9.2.2 抽取和檢索子串
9.2.3 連線拆分字元串
9.2.4 字元串的模式匹配--一個字元串格式校驗的例子
9.2.5 其他方法
9.3 字元串與字元數組
9.4 字元串與文本處理--JavaScript棋譜閱讀器(一)
9.4.1 需求分析--什麼是棋譜和棋譜閱讀器
9.4.2 系統設計--棋譜和棋盤數據的字元串描述
9.4.3 系統實現--解析和處理棋譜
9.4.4 完整的棋譜閱讀器
9.5 總結
第10章 正則表達式
10.1 什麼是正則表達式
10.1.1 正則表達式的概念
10.1.2 JavaScript中的正則表達式
10.2 正則表達式的規則
10.2.1 直接量字元
10.2.2 字元類和布爾操作
10.2.3 重複
10.2.4 選擇、分組和引用
10.2.5 指定匹配的位置
10.2.6 標誌——高級模式匹配的規則
10.3 模式匹配
10.3.1 用於模式匹配的String方法及其例子
10.3.2 用於模式匹配的RegExp方法
10.3.2.1 一個使用exec()方法從身份證號碼獲取生日的例子
10.3.2.2 一個使用test()方法遍歷字元串的例子
10.4 關於正則表達式包裝對象
10.4.1 RegExp對象——利用正則表達式實現全文檢索
10.4.2 RegExp的實例屬性
10.5 強大的正則表達式
10.5.1 分析正則表達式的局部
10.5.2 一個例子--強大的線上編輯器
10.5.3 構造新的文法--一個在JSVM中實現JSVM2解析器的例子
10.6 高級用法
10.7 用正則表達式處理文本
10.7.1 創建一個計價公式編輯器
10.7.1.1 需求分析--什麼是計價公式編輯器
10.7.1.2 系統實現--計價公式編輯器的實現
10.7.2 創建一個同步滾動歌詞播放器
10.7.2.1 需求分析--什麼是同步滾動歌詞播放器
10.7.2.2 系統設計與實現--處理LRC歌詞
10.8 總結
第三部分 瀏覽器與DOM
第11章 瀏覽器對象
11.1 Window對象--最基本的瀏覽器對象
11.1.1 Window對象概覽
11.1.2 Window對象的生命周期
11.1.3 Window對象的屬性和方法
11.1.4 一個多視窗套用的例子
11.2 Document對象--瀏覽器視窗文檔內容的代表
11.2.1 Document對象概覽
11.2.2 動態生成的文檔
11.2.3 Document對象的基本信息
11.2.4 Document對象的外觀屬性
11.2.5 Document子對象接口
11.2.5.1 一個遍歷Anchors對象的例子
11.2.5.2 一個顛倒圖片的例子
11.3 對話框和狀態欄
11.3.1 創建一個簡單對話框
11.3.2 其他類型的對話框
11.3.2.1 模擬對話框--創建一個視窗對話框及一個對話框阻塞進行的例子
11.3.2.2 showModalDialog和showModelessDialog--非W3C或ECMAScrip標準
11.3.3 狀態欄
11.4 框架--上層的Window對象
11.4.1 多框架套用
11.4.2 框架之間的關係
11.4.3 框架的命名
11.4.4 子框架中的JavaScript
11.4.5 框架的套用--多頁簽顯示
11.4.5.1 什麼是頁簽
11.4.5.2 頁簽的實現--創建一個包含頁簽的頁面
11.5 表單和表單對象
11.5.1 Form對象及其範例
11.5.2 定義表單元素
11.5.3 客戶端表單校驗及其例子
11.5.4 創建一款通用的客戶端表單校驗組件
11.6 其他內置對象
11.6.1 Navigator對象--瀏覽器總體信息的代表
11.6.2 Screen對象--提供顯示器解析度和可用顏色數量信息
11.6.3 Location對象--當前視窗中顯示文檔的URL的代表
11.6.4 History對象--一個有趣的對象
11.7 總結
第12章 文檔對象模型
12.1 什麼是DOM
12.1.1 把文檔表示為樹
12.1.2 樹的節點
12.1.3 DOM對象的通用屬性和方法
12.1.4 HTML結構和DOM對象的關係--用JavaScript通過DOM來操作HTML文檔
12.2 DOM與瀏覽器實現
12.2.1 關於DOM HTML API
12.2.2 DOM的級別和特性
12.2.3 DOM的一致性
12.2.4 差異性--瀏覽器的DOM方言
12.3 一組“盒子”--DOM元素
12.3.1 嵌套的“盒子”
12.3.2 “盒子”和“盒子”內容的分類
12.4 創建和刪除節點
12.4.1 構造全新的節點
12.4.2 平面展開--通過文檔元素直接創建
12.4.3 回收空間--刪除不用的節點
12.5 訪問和操縱DOM節點
12.5.1 打開每一個盒子--遍歷節點
12.5.2 弄清層級關係--父子與兄弟
12.5.3 如何搜尋特定節點
12.5.4 克隆節點--一個使用cloneNode()複製表格的例子
12.5.5 移動節點及其範例
12.5.6 關於添加新行和排序的小技巧
12.6 讀寫數據--添加、修改和刪除屬性
12.7 外觀與行為
12.7.1 DOM樣式屬性
12.7.2 控制DOM元素的顯示與隱藏
12.7.3 改變顏色和大小--一個簡單有趣的例子
12.7.4 改變位置--創建一個繞圓圈旋轉的文字
12.7.5 編輯控制及其範例
12.7.6 改變樣式及其範例
12.7.7 改變行為
12.8 XML DOM
12.8.1 什麼是XML DOM
12.8.2 如何使用XML DOM--一個利用XML實現多級關聯下拉選擇框的例子
12.9 總結
第13章 事件處理
13.1 什麼是事件
13.1.1 訊息與事件回響
13.1.2 瀏覽器的事件驅動機制
13.2 基本事件處理
13.2.1 事件和事件類型
13.2.2 事件的綁定
13.2.3 直接調用事件處理函式
13.2.4 事件處理函式的返回值
13.2.5 帶參數的事件回響及其例子
13.2.6 “this”關鍵字
13.3 標準事件模型
13.3.1 起泡和捕捉--瀏覽器的事件傳播
13.3.2 事件處理函式的註冊
13.3.3 把對象註冊為事件處理程式
13.3.4 事件模組和事件類型
13.3.5 關於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 瀏覽器的事件處理模型實現
13.4.1 Internet Explorer事件模型
13.4.1.1 關於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 回調與用戶自定義事件
13.5.1 事件處理模式--一個實現簡單事件處理模式的例子
13.5.2 用戶事件接口的定義
13.5.3 事件代理和事件註冊--一個實現標準事件接口的例子
13.5.4 標準模式--事件分派和接收
13.6 一個例子--增強數據表格
13.6.1 什麼是增強數據表格
13.6.2 一個採用兩重table嵌套方式固定表頭的例子
13.6.3 可變列寬的實現
13.6.4 標記行--呈現有別於其他行的背景色
13.6.5 小技巧--將代碼添加到樣式表
13.7 總結
第14章 級聯樣式表
14.1 什麼是級聯樣式表
14.1.1 CSS樣式和樣式表
14.1.2 CSS的標準化
14.1.3 瀏覽器支持的CSS
14.2 JavaScript與CSS
14.2.1 CSS和DOM的關係
14.2.2 CSS和IE的關係
14.2.3 瀏覽器的CSS兼容性
14.3 控制CSS改變頁面風格
14.3.1 實現結構與表現的分離及其範例
14.3.2 使用JwaScript和CSS實現頁面多種風格的實時替換
14.4 總結
第15章 數據存儲的腳本化
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實現客戶端保存表單數據的例子
15.11 總結
第四部分 數據互動
第16章 同步和異步
16.1 什麼是同步和異步
16.2 逾時設定和時間間隔
16.3 定時器使用--偵聽與攔截
16.3.1 標準模式--監視器及其範例
16.3.2 使用定時器時應當注意的問題
16.4 一個例子--漂亮的Web時鐘
16.4.1 什麼是Web時鐘?
16.4.2 最簡單的Web時鐘
16.4.3 Web時鐘的設計
16.4.4 完整的Web時鐘原始碼
16.5 總結
第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 訪問節點
17.4.2 創建新節點
17.4.3 移動和修改節點及其範例
17.4.4 讀寫節點屬性和讀寫數據
17.4.5 保存文檔
17.5 一個例子--JavaScript棋譜閱讀器(二)
17.5.1 用XML描述棋譜
17.5.2 將XML棋譜轉換為SGF棋譜
17.6 什麼是XML HTTP對象
17.6.1 XML HTTP對象簡介
17.6.2 瀏覽器支持的XML HTTP對象
17.7 通過XML HTTP傳送請求
17.7.1 建立連線
17.7.2 傳送請求
17.8 讀取和設定HTTP頭
17.8.1 什麼是HTTP頭
17.8.2 讀取和設定HTTP頭
17.9 伺服器應答
17.9.1 同步和異步應答及其例子
17.9.2 包含應答文本內容的ResponseText 和ResponseXML
17.10 總結
第18章 Ajax簡介
第19章 標準和兼容性
第20章 信息安全
第五部分 超越JavaScript
第21章 面向對象
第22章 閉包與函式式編程
第23章 模組級管理
第24章 動態構建
第25章 執行效率
25.1 為什麼要討論執行效率
25.2 封閉的代價
25.3 盒子裡的流火
25.4 動態--魔鬼與天使
25.5 讓代碼輕舞飛揚
25.6 總結
第26章 套用框架
26.1 套用框架概覽
26.2 為什麼要設計套用框架
26.3 如何設計套用框架
26.4 框架的實際套用--在Silverna 2.0框架上開發的Widgets
26.5 已存在的套用框架
26.6 總結