出版時間:2011-9 出版社:清華大學出版社 作者:張亞飛 頁數(shù):629
Tag標簽:無
前言
作為萬維網(wǎng)前端最重要的程序語言,JavaScript的出現(xiàn)使得網(wǎng)頁和用戶之間實現(xiàn)了一種實時、動態(tài)的交互關系,并且使網(wǎng)頁可以包含更多活動的元素和更加精彩的呈現(xiàn),此功能現(xiàn)在被稱為RIA(富Internet應用)?! ∷械臑g覽器都嵌入有JavaScript解釋引擎,這也使JavaScript成為創(chuàng)建RIA的首要程序語言。在過去的幾年,AJAX技術的出現(xiàn)使JavaScript成為富Internet應用的核心,隨著社會各個組織機構向富Internet應用遷移,JavaScript創(chuàng)造了無限的財富機遇,AJAX也成為開發(fā)者推崇的解決方案?! ⌒聵藴蕩Ыo開發(fā)者更大的機遇 2009年12月,在萬維網(wǎng)主要參與者的推動下,ECMAScript5正式被批準成為正式的標準,并提交給ISO/IEC制定為國際標準。這距離前一個版本——ECMAScript3的產(chǎn)生已經(jīng)過了將近10年,并且也成為近幾年來最重大的語言更新,作為萬維網(wǎng)前端最重要的程序語言,JavaScript正迎來最大的發(fā)展機遇,每個萬維網(wǎng)參與者都不能錯過,每個開發(fā)者也不能錯過?! eb標準就是Web的未來 ECMAScript往往被稱為JavaScript,后者為更多開發(fā)者所熟知。但是JavaScript僅僅是瀏覽器廠商的一個產(chǎn)品商標的名稱,而真正的標準是ECMAScript。對于ECMAScript,不同的瀏覽器廠商有不同的名稱,如Mozilla稱為JavaScript,Microsoft稱為JScript,Google稱為V8,Apple稱為JavaScriptCore,Opera則直接稱為ECMAScript?! ∽鳛槿f維網(wǎng)的核心語言,HTML在經(jīng)歷了近10年的停滯之后終于迎來了一個新的標準——HTML5。HTML5不僅將成為HTML4的新標準,而且將成為XHTML和HTMLDOM的新標準。同時,HTML5還為BOM第一次明確定義了標準,使得與瀏覽器交互有了可靠的依據(jù)?! ∷羞@一切為瀏覽器成為應用程序的運行平臺提供了堅實的基礎,而這一切都需要編寫JavaScript程序來實現(xiàn)。 市場前景巨大 ECMAScript5正在快速成長,富Internet應用也正在向更廣、更深的領域前進,所有最新版本的主流瀏覽器都宣布并已經(jīng)開始支持ECMAScript5,其中包括為Android和iPhone開發(fā)的移動瀏覽器。 這值得所有人密切關注,最近的一兩年,會有很多公司進入這個領域。對于年輕一代開發(fā)者,ECMAScript5應當是他們的首選技能,因為ECMAScript5會形成很大的市場,會有很多公司需要這方面的人才。 關于本書 本書涵蓋了JavaScript開發(fā)的所有內(nèi)容,包括ECMAScript5、OOP、原型鏈、HTML5BOM、HTML5DOM、CoreDOM、StyleDOM、EventDOM、DHTML、XMLHttpRequest、AJAX、Web Workers、Web Storage、Web SQL Database、Cross Document Messaging、Server-Sent Event、Web Sockets、ActiveXObject、HTA等,可以幫助讀者完整、系統(tǒng)地掌握JavaScript的開發(fā)知識?! ”緯淖髡呤侨f維網(wǎng)開發(fā)的專家,也是《萬維網(wǎng)應用程序開發(fā)綱要》的起草者,他可以幫助讀者完整、系統(tǒng)、快速、有效地掌握JavaScript開發(fā)的知識。
內(nèi)容概要
本書主要針對網(wǎng)頁設計和開發(fā)初學者編寫,現(xiàn)在學習javascript應該從最新標準ecmascript5開始,這是毋庸置疑的。對于有經(jīng)驗的工程師來說,如果想完整掌握最新的javascript進展,那么使用本書是明智的選擇。
本書包含了javascript
開發(fā)的所有內(nèi)容,包括ecmascript5、oop、原型鏈、html5bom、html5dom、coredom、styledom、eventdom、dhtml、xmlhttprequest、ajax、web
workers、web storage、web sql database、cross document
messaging、server-sent event、web
sockets、activexobject、hta等。這些功能介紹都嚴格按照ecmascript5和html5標準的要求編寫,并附有詳細的范例,側(cè)重于實戰(zhàn)。書中提供了各種瀏覽器兼容性指南,以幫助用戶深入理解。
另外,本書修正了當前普遍存在的錯誤認識,有利于初學者的學習。
新的機遇已經(jīng)到來,對于想盡快掌握javascript新技術的用戶來說,本書是最完整的教程,希望本書能成為您學習道路上的領航者。
作者簡介
張亞飛——務實且極富遠見的萬維網(wǎng)權威大師——《萬維網(wǎng)應用程序開發(fā)綱要》的起草者——多本權威書籍的撰寫者,浸淫萬維網(wǎng)15年,功力非凡
書籍目錄
第1篇 ecmascript和javascript語言基礎入門篇
第1章 正確認識ecmascript5和javascript
1.1 ecmascript和javascript的關系
1.1.1 關于標準和實現(xiàn)
1.1.2 javascript與ecmascript版本的關系
1.2 有關javascript的認識
1.2.1 區(qū)分javascript和jscript
1.2.2 javascript不是解釋型java語言
1.2.3 什么是腳本語言
1.2.4 區(qū)分客戶端和服務端javascript
第2章 準備開發(fā)環(huán)境和運行環(huán)境
2.1 正確認識javascript的開發(fā)工具
2.1.1 dreamweaver的安裝和配置向?qū)А?br /> 2.1.2 aptana studio的安裝和配置向?qū)А?br /> 2.2 準備執(zhí)行環(huán)境
2.2.1 瀏覽器的發(fā)展史
2.2.2 安裝瀏覽器
2.2.3 在瀏覽器中啟用javascript執(zhí)行環(huán)境
第3章 在網(wǎng)頁中編寫javascript腳本代碼
3.1 創(chuàng)建第一個javascript應用程序
3.1.1 使用dreamweaver編寫javascript
3.1.2 使用aptana studio編寫javascript
3.2 在html網(wǎng)頁中書寫javascript腳本代碼
3.2.1 使用script元素定義腳本代碼
3.2.2 在事件屬性值中定義腳本
3.2.3 在超鏈接中定義腳本
3.3 瀏覽器不支持腳本時應注意的問題
3.3.1 noscript元素
3.3.2 關于隱藏腳本數(shù)據(jù)
3.4 聲明腳本語言
3.4.1 默認的腳本語言
3.4.2 腳本語言的本地聲明
第4章 程序開發(fā)的基石——聲明和使用變量
4.1 變量的聲明
4.1.1 聲明和命名變量
4.1.2 變量和標識符的命名規(guī)范
4.1.3 變量的數(shù)據(jù)類型
4.1.4 自定義常量和內(nèi)建常量
4.2 在程序中使用變量
4.2.1 為變量賦值和更改變量值
4.2.2 使用變量和獲取變量值
4.3 變量的傳值和傳址
4.3.1 傳值變量——按值傳遞
4.3.2 傳址變量——按引用傳遞
4.4 內(nèi)存使用規(guī)則——堆和?!?br /> 4.4.1 棧的使用規(guī)則
4.4.2 堆的使用規(guī)則
4.4.3 易犯的錯誤
4.5 數(shù)據(jù)類型轉(zhuǎn)換
第5章 javascript語法規(guī)范和良好的編程習慣
5.1 空白和多行書寫
5.2 點語法
5.3 花括號
5.4 分號
5.5 圓括號
5.6 字母的大小寫
5.7 程序注釋
5.7.1 單行注釋和尾隨注釋
5.7.2 多行注釋
5.7.3 文檔注釋
5.7.4 html注釋
5.8 關鍵字
5.9 培養(yǎng)良好的編程習慣
5.9.1 通用的變量名、方法名和類名命名約定
5.9.2 重構
5.9.3 使用注釋
5.10 ecmascript5嚴格模式
5.10.1 使用嚴格模式
5.10.2 嚴格模式的特定要求
第6章 數(shù)據(jù)運算和運算規(guī)則
6.1 javascript表達式
6.1.1 簡單表達式和復雜表達式
6.1.2 賦值表達式和單值表達式
6.2 算術運算符
6.2.1 算術運算符的使用
6.2.2 進行算術運算時的注意事項
6.3 賦值運算符
6.4 字符串運算符
6.5 比較運算符和邏輯運算符
6.5.1 數(shù)據(jù)類型的影響
6.5.2 全等運算符
6.5.3 特殊值的比較
6.5.4 易犯錯的比較運算
6.6 位運算符
6.7 其他運算符
6.7.1 三元條件運算符
6.7.2 typeof運算符
6.7.3 instanceof運算符
6.7.4 圓括號和逗號運算符的結(jié)合使用
6.7.5 delete運算符
6.7.6 void運算符
6.8 運算符的使用規(guī)則
6.8.1 運算符的優(yōu)先級規(guī)則
6.8.2 運算符的結(jié)合規(guī)則
6.9 運行時進行類型檢查
第7章 流程控制
7.1 語句和語句塊
7.2 if…else條件語句
7.3 switch條件語句
7.4 do...while循環(huán)
7.5 for循環(huán)
7.6 for...in循環(huán)
7.7 for each...in循環(huán)
7.8 其他流程控制
7.8.1 break語句
7.8.2 continue語句
7.8.3 標簽語句
7.8.4 let語句
7.8.5 yield語句
7.9 with語句
7.10 流程控制總結(jié)
第8章 內(nèi)建的全局函數(shù)
8.1 eval()函數(shù)
8.2 轉(zhuǎn)義操作函數(shù)
8.2.1 escape()和unescape()函數(shù)
8.2.2 encodeuri()和decodeuri()函數(shù)
8.2.3 encodeuricomponent()和decodeuricomponent()函數(shù)
8.3 轉(zhuǎn)換函數(shù)
8.3.1 parsefloat()函數(shù)
8.3.2 parseint()函數(shù)
8.3.3 number()和string()函數(shù)
8.3.4 boolean()函數(shù)
8.4 判斷函數(shù)
8.4.1 isfinite()函數(shù)
8.4.2 isnan()函數(shù)
第9章 自定義函數(shù)
9.1 函數(shù)的定義
9.2 函數(shù)的調(diào)用
9.2.1 在函數(shù)中定義參數(shù)的初始值
9.2.2 嵌套函數(shù)的定義和調(diào)用
9.2.3 條件函數(shù)的定義和調(diào)用
9.2.4 特殊的調(diào)用方式
9.3 使用函數(shù)表達式定義函數(shù)(匿名函數(shù))
9.3.1 函數(shù)表達式和函數(shù)語句的區(qū)別
9.3.2 匿名自執(zhí)行函數(shù)
9.4 使用function類定義函數(shù)
9.5 變量的作用范圍和生命周期
9.5.1 了解變量的作用范圍和生命周期
9.5.2 局部變量的聲明
9.5.3 全局變量的聲明
9.5.4 全局變量和局部變量的使用
9.5.5 易出錯的變量使用
9.6 形參和實參
9.7 閉包函數(shù)(綁定函數(shù))
9.7.1 什么是閉包函數(shù)
9.7.2 閉包函數(shù)常用的環(huán)境
9.7.3 易犯的錯誤
9.8 產(chǎn)生器
第2篇 javascript面向?qū)ο缶幊唐?br /> 第10章 面向?qū)ο缶幊蹋╫op)——創(chuàng)建類和使用類
10.1 面向?qū)ο缶幊趟枷搿?br /> 10.1.1 對象的抽象
10.1.2 對象的使用
10.1.3 易犯的錯誤
10.1.4 面向?qū)ο蟪绦蛟O計的優(yōu)點和基本特征
10.1.5 面向?qū)ο蠛徒Y(jié)構化程序設計的區(qū)別
10.2 創(chuàng)建類
10.2.1 創(chuàng)建一個javascript類
10.2.2 類的定義
10.2.3 關于構造器方法
10.2.4 獲取構造器方法
10.3 類的使用
10.3.1 創(chuàng)建類的實例
10.3.2 訪問對象屬性
10.3.3 調(diào)用對象方法
10.3.4 調(diào)用靜態(tài)方法和訪問靜態(tài)屬性
10.4 使用this關鍵字定義方法和屬性
10.5 使用prototype定義方法和屬性
10.5.1 使用prototype定義方法
10.5.2 使用prototype定義屬性
10.5.3 關于prototype和__proto__屬性
10.6 使用object類為實例定義方法和屬性
10.6.1 使用return語句定義方法和屬性
10.6.2 使用prototype和object配合為類定義方法和屬性
10.7 使用get和set存取器方法定義屬性
10.8 在類體內(nèi)使用this關鍵字
10.8.1 使用this時易犯的錯誤
10.8.2 閉包方法(綁定方法)內(nèi)的this關鍵字
10.8.3 事件處理中的閉包
10.8.4 另一個使用this時易犯的錯誤
第11章 建立更可靠的oop程序——類和成員的訪問控制
第12章 重復使用類——繼承和組合
12.1 類的繼承
12.1.1 創(chuàng)建子類
12.1.2 使用基類的構造器方法
12.1.3 檢測繼承關系
12.1.4 使用$super實現(xiàn)訪問基類
12.1.5 創(chuàng)建子類時的注意事項
12.2 擴展內(nèi)建javascript類
12.3 類的組合
12.3.1 實現(xiàn)類的組合
12.3.2 組合的優(yōu)點
12.3.3 了解is-a和has-a
12.3.4 關于聚合和組合
第13章 靜態(tài)成員、靜態(tài)類和枚舉 (enumeration)
13.1 定義靜態(tài)成員和靜態(tài)類的意義
13.2 創(chuàng)建靜態(tài)成員
13.2.1 使用靜態(tài)成員
13.2.2 靜態(tài)成員和繼承
13.2.3 使用靜態(tài)成員的注意事項
13.3 靜態(tài)類及其聲明方法
13.4 枚舉(enumeration)
13.4.1 創(chuàng)建枚舉
13.4.2 使用枚舉的優(yōu)點
第14章 多態(tài)(polymorphism)——重載和覆載
14.1 方法的重載(overload)
14.1.1 重載參數(shù)列表的數(shù)量
14.1.2 重載參數(shù)列表的數(shù)據(jù)類型
14.2 方法的覆載(override)
14.3 屬性的覆載
第15章 原型鏈本質(zhì)論
15.1 原型鏈的根源
15.1.1 內(nèi)部屬性
15.1.2 訪問內(nèi)部屬性[prototype]
15.2 prototype的作用——原型鏈的實現(xiàn)
15.2.1 實現(xiàn)繼承
15.2.2 分享屬性(和方法)
15.2.3 __proto__和prototype屬性的區(qū)別
15.2.4 使用ecmascript5新增的原型處理功能
15.3 檢查原型鏈
15.3.1 查看對象是否在指定對象的原型鏈中
15.3.2 查看指定對象是否定義了特定屬性和方法
15.3.3 使用hasownproperty()方法過濾原型鏈
15.3.4 查看指定對象是否定義了特定屬性且可以枚舉
第16章 ecmascript5增強的對象模型
16.1 屬性和描述符
16.1.1 易犯的錯誤
16.1.2 使用ecmascript 5增強的對象模型定義屬性
16.1.3 定義get和set存取器方法
16.1.4 一次定義多個屬性
16.1.5 獲取特定屬性的屬性描述符
16.2 枚舉屬性
16.2.1 object.keys(obj)方法
16.2.2 object.getownpropertynames(obj)方法
16.3 密封對象和動態(tài)對象
16.3.1 密封對象不允許添加成員
16.3.2 密封對象不允許添加和刪除成員
16.3.3 完全密封對象
16.3.4 易犯的錯誤
16.4 根據(jù)原型創(chuàng)建對象
第17章 處理字符串——string類和正則表達式
第3篇 html5bom篇
第4篇 dom篇
第5篇 javascript和activexobject篇
附錄a 保留的關鍵字
附錄b 鍵盤鍵和鍵控代碼值對照表
附錄c w3c的xmlhttprequest接口規(guī)范
附錄d input元素type屬性值與htmlinputelement api匹配索引
附錄e html5元素和html5dom接口的對應關系
附錄f html4和html5事件屬性對照表
附錄g 參考資料來源
章節(jié)摘錄
版權頁:插圖:要了解JavaScript,首先要了解什么是腳本語言。目前,動態(tài)的應用程序一般使用兩種方式實現(xiàn):二進制方式和腳本方式。二進制(Binary)方式就是先將編寫的程序代碼編譯為機器可識別的指令代碼,然后再執(zhí)行。這種編譯好的程序用戶只能執(zhí)行和使用,看不到原始程序的內(nèi)容。腳本( Script)方式是使用一種特定的描述性語言,依據(jù)一定的格式編寫的文本文件。簡單地說,就是一條一條的文字命令,這些文字命令用戶可以使用“記事本”程序看到。腳本程序也是可執(zhí)行文檔,在執(zhí)行時,由一個解釋引擎(該解釋引擎也是一個二進制的應用程序)將其逐條翻譯成機器可識別的指令,并按程序順序執(zhí)行。因為腳本在執(zhí)行時多了一道翻譯的程序,所以它比二進制程序的執(zhí)行效率要稍低一些。我們經(jīng)常能看到的各種動態(tài)語言,如VBScript、JavaScript、Script、PHP、CGI、JSP、CFML等,都是腳本語言。1.客戶端腳本在腳本語言中,有些是作為客戶端腳本語言來運行的,它們由客戶端的解釋引擎來解釋。例如VB Script、JavaScript、Script等都可以作為客戶端腳本語言,當它們被嵌入到HTML文件中時,可以按照順序執(zhí)行或者響應某個事件而對事件做出應答??蛻舳四_本語言一般用來創(chuàng)建動畫效果、執(zhí)行簡單的驗證等,從而豐富了網(wǎng)頁的呈現(xiàn)??蛻舳四_本代碼在客戶端執(zhí)行,可以在網(wǎng)頁中增加動態(tài)效果和交互功能,豐富網(wǎng)頁。例如,下面是一些較常用的,實現(xiàn)動態(tài)效果和交互的簡單功能:(1)當文檔被加載到客戶端后,文檔中的腳本可以動態(tài)計算,從而動態(tài)地修改文檔的內(nèi)容。(2)腳本可以用來獲取表單控件中的輸入數(shù)據(jù)。一般,開發(fā)人員會使用這一功能來驗證用戶輸入數(shù)據(jù)的有效性,如檢測用戶輸入的密碼是否至少6位長度等。
編輯推薦
《JavaScript權威指南:ECMAScript5+HTML5DOM+HTML5BOM》涵蓋了JavaScript開發(fā)的所有內(nèi)容,包括ECMAScript5、OOP、原型鏈、HTML5BOM、HTML5DOM、CoreDOM、StyleDOM、EventDOM、DHTML、XMLHttpRequest、AJAX、WebWorkers、WebStorage、WebSQLDatabase、Cross Document Messaging、Server-Sent Event、Web Sockets、ActiveXObject、HTA等,可以幫助讀者完整、系統(tǒng)地掌握JavaScript的開發(fā)知識?!禞avaScript權威指南:ECMAScript5+HTML5DOM+HTML5BOM》的作者是萬維網(wǎng)開發(fā)的專家,也是《萬維網(wǎng)應用程序開發(fā)綱要》的起草者,他可以幫助讀者完整、系統(tǒng)、快速、有效地掌握JavaScript開發(fā)的知識。全面破除當前普遍存在的錯誤認識,讓您不走彎路,包含ECMAScripts最新語法,涵蓋AJAX、DOM和ActiveXObject,與HTML5、CSS3緊密結(jié)合,緊跟時代進展完整,系統(tǒng),全面的知識體系,新功能,新特性一覽無余,以近500余范例解釋理論,清楚易懂,讓你輕松上手,瀏覽器兼容性提示,讓您學以致用,工作中游刃有余。親自撰寫,全面引領下一代萬維網(wǎng)技術,不容錯過最新版JavaScript-ECMAScript5。專業(yè)級教學視頻,實例源程序下載。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載