JavaScript王者歸來pdf

來源:互聯網
上載者:User

標籤:如何   idg   相容性   異常   自訂類   建立   專業網站   標準模式   需求分析   

:網盤下載

 

 

 

內容簡介  · · · · · ·

你手中的這本《JavaScript王者歸來》不僅是一本傳播知識的書,更是一本求道的書。

本書分為五個部分循序漸進地與讀者討論了JavaScript的方方面面,從簡單的語言基礎到豐富的實際應用再到深入剖析語言本質的進階話題,字裡行間包含著作者多年工作中對JavaScript實踐乃至程式設計思想的深入思考和總結。

本書揭開了JavaScript的面紗,繞過誤解和虛幻的表象,引領你探索程式王國的奧妙。它既是一本為初學者準備的入門級教程,又是一本探尋程式設計思想本源的“魔法典籍”,也是一本Web開發工程師們需要的案頭參考書。

本書是你進入指令碼王國的一把鑰匙,引導你領略指令碼魔法的神奇魅力。它還是一本著眼於未來改變互連網的啟蒙讀物,在它的引領下,你將在互連網的世界裡獲得你所希望得到的知識、智慧、成就和快樂。

專題頁: http://labs.aoao.org.cn/akira/

作者簡介  · · · · · ·

吳亮(網名月影)早年曾在微軟亞洲研究員做過訪問學生、在金蝶軟體有限公司先後擔任過核心開發工程師、設計師和專案經理,現任百度電子商務事業部Web開發專案經理。多年來致力於JavaScript技術和Web標準的推廣,活躍於國內極有影響力的JavaScript專業網站——無憂指令碼(www.51js.com),並擔任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 基礎資料型別 (Elementary Data Type)
5.2 數組和對象
5.2.1 數組
5.2.2 對象--一個建構函式的例子
5.3 函數類型--一個函數和閉包的例子
5.4 神奇的null和undefined
5.4.1 null
5.4.2 undefined--獨一無二的類型
5.5 Regex
5.5.1 Regex常量
5.5.2 Regex對象
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章 Regex
10.1 什麼是Regex
10.1.1 Regex的概念
10.1.2 JavaScript中的Regex
10.2 Regex的規則
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 關於Regex封裝對象
10.4.1 RegExp對象——利用Regex實現全文檢索索引
10.4.2 RegExp的執行個體屬性
10.5 強大的Regex
10.5.1 分析Regex的局部
10.5.2 一個例子--強大的線上編輯器
10.5.3 構造新的文法--一個在JSVM中實現JSVM2解析器的例子
10.6 進階用法
10.7 用Regex處理文本
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 總結

 

 

:網盤下載

 

JavaScript王者歸來pdf

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.