出版時間:2012-4 出版社:機(jī)械工業(yè)出版社華章公司 作者:David Flanagan 頁數(shù):1019 譯者:淘寶前端團(tuán)隊(duì)
Tag標(biāo)簽:無
前言
前言:本書要講述的內(nèi)容涵蓋JavaScript語言本身,以及Web瀏覽器所實(shí)現(xiàn)的JavaScriptAPI。本書更適合有一定編程經(jīng)驗(yàn)的人閱讀。對于那些希望學(xué)習(xí)JavaScript和已經(jīng)開始使用JavaScript的程序員來說,如果想讓自己對JavaScript語言和Web平臺的理解和掌握再上一個臺階,本書最適合不過了。本書旨在系統(tǒng)權(quán)威地講解JavaScript這門語言以及運(yùn)行它的各種平臺環(huán)境。本書對各個知識點(diǎn)的講解都非常詳細(xì),以至于本書成了大塊頭。我希望每個讀者都能認(rèn)真閱讀本書,這會讓你的JavaScript編程基本功更加夯實(shí),你所花費(fèi)的時間和精力終究會有成倍的回報。本書分為4部分,第一部分主要講述JavaScript這門語言。第二部分主要講述客戶端JavaScript:HTML5和相關(guān)標(biāo)準(zhǔn)定義的JavaScriptAPI以及Web瀏覽器實(shí)現(xiàn)的API。第三部分是JavaScript語言核心部分的參考手冊。第四部分是客戶端JavaScript的參考手冊。第1章包含前兩部分的章節(jié)提綱和簡介(參照1.1節(jié))。本書第6版同時涵蓋ECMAScript5(JavaScript語言核心的最新版本)和HTML5(Web平臺的最新版本)。第一部分包含ECMAScript5相關(guān)的資料。而與HTML5相關(guān)的新資料主要在第二部分末尾的章節(jié)講述,當(dāng)然其他章節(jié)也有提到。第6版新增的章節(jié)有:第11章、第12章、第19章以及第22章。如果你閱讀過前幾版,則會發(fā)現(xiàn)第6版中很多章節(jié)都完全重寫了。第一部分中的核心章節(jié)都涵蓋全新的內(nèi)容(對象、數(shù)組、函數(shù)以及類),這些內(nèi)容都是當(dāng)下最前沿的編程技術(shù)和最佳實(shí)踐。同樣,第二部分的核心章節(jié),比如第15章和第17章,也與時俱進(jìn)全都重寫了。
內(nèi)容概要
本書要講述的內(nèi)容涵蓋JavaScript語言本身,以及Web瀏覽器所實(shí)現(xiàn)的JavaScript
API。本書第6版涵蓋了HTML5和ECMAScript
5,很多章節(jié)完全重寫,增加了當(dāng)今Web開發(fā)的最佳實(shí)踐的內(nèi)容,新增的章節(jié)包括jQuery、服務(wù)器端JavaScript、圖形編程以及
JavaScript式的面向?qū)ο?。本書不僅適合初學(xué)者系統(tǒng)學(xué)習(xí),也適合有經(jīng)驗(yàn)的 JavaScript 開發(fā)者隨手翻閱。
作者簡介
David
Flanagan是一名程序員,也是一名作家,它的個人網(wǎng)站是。他在O’Reilly出版的其他暢銷書還包括《JavaScript
Pocket Reference》、《The Ruby Programming Language》、以及《Java in a
Nutshell》。David畢業(yè)于麻省理工學(xué)院,獲得計(jì)算機(jī)科學(xué)與工程學(xué)位。他和妻子和孩子一起生活在西雅圖和溫哥華之間的美國太平洋西北海岸。
書籍目錄
前言
第1章 JavaScript概述
1.1 JavaScript語言核心
1.2 客戶端JavaScript
第一部分 JavaScript 語言核心
第2章 詞法結(jié)構(gòu)
2.1 字符集
2.2 注釋
2.3 直接量
2.4 標(biāo)識符和保留字
2.5 可選的分號
第3章 類型、值和變量
3.1 數(shù)字
3.2 文本
3.3 布爾值
3.4 null和undefined
3.5 全局對象
3.6 包裝對象
3.7 不可變的原始值和可變的對象引用
3.8 類型轉(zhuǎn)換
3.9 變量聲明
3.10 變量作用域
第4章 表達(dá)式和運(yùn)算符
4.1 原始表達(dá)式
4.2 對象和數(shù)組的初始化表達(dá)式
4.3 函數(shù)定義表達(dá)式
4.4 屬性訪問表達(dá)式
4.5 調(diào)用表達(dá)式
4.6 對象創(chuàng)建表達(dá)式
4.7 運(yùn)算符概述
4.8 算術(shù)表達(dá)式
4.9 關(guān)系表達(dá)式
4.10 邏輯表達(dá)式
4.11 賦值表達(dá)式
4.12 表達(dá)式計(jì)算
4.13 其他運(yùn)算符
第5章 語句
5.1 表達(dá)式語句
5.2 復(fù)合語句和空語句
5.3 聲明語句
5.4 條件語句
5.5 循環(huán)
5.6 跳轉(zhuǎn)
5.7 其他語句類型
5.8 JavaScript語句小結(jié)
第6章 對象
6.1 創(chuàng)建對象
6.2 屬性的查詢和設(shè)置
6.3 刪除屬性
6.4 檢測屬性
6.5 枚舉屬性
6.6 屬性getter和setter
6.7 屬性的特性
6.8 對象的三個屬性
6.9 序列化對象
6.10 對象方法
第7章 數(shù)組
7.1 創(chuàng)建數(shù)組
7.2 數(shù)組元素的讀和寫
7.3 稀疏數(shù)組
7.4 數(shù)組長度
7.5 數(shù)組元素的添加和刪除
7.6 數(shù)組遍歷
7.7 多維數(shù)組
7.8 數(shù)組方法
7.9 ECMAScript 5中的數(shù)組方法
7.10 數(shù)組類型
7.11 類數(shù)組對象
7.12 作為數(shù)組的字符串
第8章 函數(shù)
8.1 函數(shù)定義
8.2 函數(shù)調(diào)用
8.3 函數(shù)的實(shí)參和形參
8.4 作為值的函數(shù)
8.5 作為命名空間的函數(shù)
8.6 閉包
8.7 函數(shù)屬性、方法和構(gòu)造函數(shù)
8.8 函數(shù)式編程
第9章 類和模塊
9.1 類和原型
9.2 類和構(gòu)造函數(shù)
9.3 JavaScript中Java式的類繼承
9.4 類的擴(kuò)充
9.5 類和類型
9.6 JavaScript中的面向?qū)ο蠹夹g(shù)
9.7 子類
9.8 ECMAScript 5 中的類
9.9 模塊
第10章 正則表達(dá)式的模式匹配
10.1 正則表達(dá)式的定義
10.2 用于模式匹配的String方法
10.3 RegExp對象
第11章 JavaScript的子集和擴(kuò)展
11.1 JavaScript的子集
11.2 常量和局部變量
11.3 解構(gòu)賦值
11.4 迭代
11.5 函數(shù)簡寫
11.6 多catch 從句
11.7 E4X: ECMAScript for XML
第12章 服務(wù)器端JavaScript
12.1 用Rhino腳本化Java
12.2 用Node實(shí)現(xiàn)異步I/O
第二部分 客戶端JavaScript
第13章 Web瀏覽器中的JavaScript
13.1 客戶端JavaScript
13.2 在HTML里嵌入JavaScript
13.3 JavaScript程序的執(zhí)行
13.4 兼容性和互用性
13.5 可訪問性
13.6 安全性
13.7 客戶端框架
第14章 Window對象
14.1 計(jì)時器
14.2 瀏覽器定位和導(dǎo)航
14.3 瀏覽歷史
14.4 瀏覽器和屏幕信息
14.5 對話框
14.6 錯誤處理
14.7 作為Window對象屬性的文檔元素
14.8 多窗口和窗體
第15章 腳本化文檔
15.1 DOM概覽
15.2 選取文檔元素
15.3 文檔結(jié)構(gòu)和遍歷
15.4 屬性
15.5 元素的內(nèi)容
15.6 創(chuàng)建、插入和刪除節(jié)點(diǎn)
15.7 例子:生成目錄表
15.8 文檔和元素的幾何形狀和滾動
15.9 HTML表單
15.10 其他文檔特性
第16章 腳本化CSS
16.1 CSS概覽
16.2 重要的CSS屬性
16.3 腳本化內(nèi)聯(lián)樣式
16.4 查詢計(jì)算出的樣式
16.5 腳本化CSS類
16.6 腳本化樣式表
第17章 事件處理
17.1 事件類型
17.2 注冊事件處理程序
17.3 事件處理程序的調(diào)用
17.4 文檔加載事件
17.5 鼠標(biāo)事件
17.6 鼠標(biāo)滾輪事件
17.7 拖放事件
17.8 文本事件
17.9 鍵盤事件
第18章 腳本化HTTP
18.1 使用XMLHttpRequest
18.2 借助
章節(jié)摘錄
版權(quán)頁: 插圖: 第1章 JavaScript概述 JavaScript是面向Web的編程語言。絕大多數(shù)現(xiàn)代網(wǎng)站都使用了JavaScript,并且所有的現(xiàn)代Web瀏覽器——基于桌面系統(tǒng)、游戲機(jī)、平板電腦和智能手機(jī)的瀏覽器——均包含了JavaScript解釋器。這使得JavaScript能夠稱得上史上使用最廣泛的編程語言。JavaScript也是前端開發(fā)工程師必須掌握的三種技能之一:描述網(wǎng)頁內(nèi)容的HTML、描述網(wǎng)頁樣式的CSS以及描述網(wǎng)頁行為的JavaScript。本書能幫助你掌握J(rèn)avaScript這門語言。 如果你有其他語言的編程經(jīng)歷,這會有助于你了解JavaScript是一門高端的、動態(tài)的、弱類型的編程語言,非常適合面向?qū)ο蠛秃瘮?shù)式的編程風(fēng)格。JavaScript的語法源自Java,它的一等函數(shù)(first—classfunction)來自于Scheme,它的基于原型(prototype—based)的繼承來自于Self。但使用本書學(xué)習(xí)JavaScript不必去了解那些(Java/Scheme/Self)語言或熟悉那些術(shù)語。 “JavaScript”這個名字經(jīng)常被誤解。除了語法看起來和Java類似之外,JavaScript和Java是完全不同的兩種編程語言。JavaScript早已超出了其“腳本語言”(scripting—language)本身的范疇,而成為一種集健壯性、高效性和通用性為一身的編程語言。最新的語言版本為嚴(yán)謹(jǐn)?shù)拇笮蛙浖_發(fā)定義了諸多新的特性。 JavaScript:名字和版本 JavaScript是由Web發(fā)展初期的網(wǎng)景(Netscape)公司創(chuàng)建,“JavaScript”是SunMicrosystem公司(現(xiàn)在的Oracle)的注冊商標(biāo),用來特指網(wǎng)景(現(xiàn)在的Mozilla)對這門語言的實(shí)現(xiàn)。網(wǎng)景將這門語言作為標(biāo)準(zhǔn)提交給了ECMA——?dú)W洲計(jì)算機(jī)制造協(xié)會——由于商標(biāo)上的沖突,這門語言的標(biāo)準(zhǔn)版本改了一個丑陋的名字“ECMAScript”。同樣由于商標(biāo)的沖突,微軟對這門語言的實(shí)現(xiàn)版本取了一個廣為人知的名字“Jscript”。實(shí)際上,幾乎所有人都將這門語言叫做“JavaScript”。本書也僅僅使用“ECMAScript”來指代語言標(biāo)準(zhǔn)。 在最近10年間,所有的Web瀏覽器都實(shí)現(xiàn)了第3版ECMAScript標(biāo)準(zhǔn),我們也已經(jīng)不必再去考慮版本號了:語言標(biāo)準(zhǔn)已經(jīng)很穩(wěn)定了,并且被幾乎所有瀏覽器完整地實(shí)現(xiàn)了。最近,ECMAScript第5版定義了新的語言標(biāo)準(zhǔn),在撰寫本書時,瀏覽器已經(jīng)開始實(shí)現(xiàn)它了。除了ECMAScript3長期保留下來的特性,本書還涵蓋了所有ECMAScript5的新特性。正如我們經(jīng)常將JavaScript簡寫成JS一樣,ECMAScript3和ECMAScript5有時也會簡寫成ES3和ES5。 當(dāng)我們提到這門語言本身時,通常所指的語言版本是ECMAScript3和ECMAScript5(ECMAScript4已經(jīng)開發(fā)了數(shù)年,但由于太過龐大,從未發(fā)布過正式版本)。有時會看到JavaScript的版本號(比如JavaScript1.5或JavaScript1.8)。這些是Mozilla的版本號:版本1.5基本上就是ECMAScript3,后續(xù)版本包含了非標(biāo)準(zhǔn)的語言擴(kuò)展(參照第11章)。最后,JavaScript解釋器或者“引擎”(engine)也有版本號,比如,Google將它的JavaScript解釋器叫做V8,在撰寫本書時V8引擎最新版本是3.0。 為了有用起見,通常每一種編程語言都有各自的開發(fā)平臺、標(biāo)準(zhǔn)庫或API函數(shù),用來提供諸如基本輸入輸出的功能。JavaScript語言核心針對文本、數(shù)組、日期和正則表達(dá)式的操作定義了很少的API,但是這些API不包括輸入輸出功能。輸入和輸出功能(類似網(wǎng)絡(luò)、存儲和圖形相關(guān)的復(fù)雜特性)是由JavaScript所屬的“宿主環(huán)境”(hostenviroment)提供的。這里所說的宿主環(huán)境通常是Web瀏覽器(第12章會介紹兩個不基于Web瀏覽器的JavaScript宿主環(huán)境),本書第一部分涵蓋了語言本身的特性以及少量的內(nèi)置API。第二部分講解了JavaScript如何在Web瀏覽器中工作,并涵蓋基于瀏覽器的API——這部分也稱做“客戶端JavaScript”。 本書第三部分是核心API的參考手冊。比如,在這部分,可以查找“Array”以獲得JavaScript數(shù)組操作API的詳細(xì)信息。第四部分是客戶端JavaScript參考手冊,比如,你可以在這部分查找“canvas”來獲得HTML5元素定義的圖形編程API。 本書首先講解初級的基礎(chǔ)部分,然后講解更高級和更抽象的內(nèi)容。本書的章節(jié)也是如此安排以便你能循序閱讀。但學(xué)習(xí)一門新的編程語言絕非易事,當(dāng)然要完整描述這門語言就沒辦法苛求知識點(diǎn)的循次漸進(jìn),每一種語言特性都和其他特性相互關(guān)聯(lián),本書的知識點(diǎn)也是前后參照的,有時參照的知識點(diǎn)在后續(xù)章節(jié),有時在已經(jīng)閱讀的章節(jié)。本章快速介紹了語言核心部分和客戶端API及其關(guān)鍵特性,以便你能更方便更深入地閱讀理解后續(xù)章節(jié)。
媒體關(guān)注與評論
“本書是JavaScript程序員的必備參考.內(nèi)容組織得很好,而且非常詳細(xì)。 ”—— Brendan Eich,JavaScript之父,Mozilla CTO“我從本書學(xué)到的內(nèi)容直接影響到我的職業(yè)生涯?!薄狝ndrew Hedges,Tapulous公司游戲工程師“本書教會了我JavaScript?!薄猅om Robinson,280 North的創(chuàng)始人,Cappuccion的合作創(chuàng)始人“通過閱讀本書,我能全面地掌握J(rèn)avaScript這門語言,本書讓我受益匪淺。”——J. Chris Anderson,CouchBase的創(chuàng)始人,Apache CouchDB委員會成員,《CouchDB:The Definitive Guide》一書的作者“如果讓我來推薦一本學(xué)習(xí)JavaScript的最佳書籍,我一定會推薦本書?!薄猂ey Bango,微軟客戶端Web社區(qū)項(xiàng)目主管和jQuery團(tuán)隊(duì)成員
編輯推薦
《O'Reilly精品圖書系列:JavaScript權(quán)威指南(第6版)》編輯推薦:經(jīng)典權(quán)威的JavaScript工具書,是程序員學(xué)習(xí)核心JavaScript語言和由Web瀏覽器定義的JavaScript API的指南和綜合參考手冊。第6版涵蓋HTML5和ECMAScript5。
名人推薦
從1996年以來,本書已經(jīng)成為JavaScript程序員心中的《圣經(jīng)》。該書已經(jīng)印刷了50多萬冊,Web開發(fā)人員對它如是評價:“本書是JavaScript程序員的必備參考……內(nèi)容組織得很好,而且非常詳細(xì)?!?——Brendan Eich,JavaScript之父,Mozilla CTO “我從本書學(xué)到的內(nèi)容直接影響到我的職業(yè)生涯?!?——Andrew Hedges,Tapulous公司游戲工程師 “本書教會了我JavaScript?!?——Tom Robinson,280 North的創(chuàng)始人,Cappuccion的合作創(chuàng)始人 “通過閱讀本書,我能全面地掌握J(rèn)avaScript這門語言,本書讓我受益匪淺?!?——J.Chris Anderson,CouchBase的創(chuàng)始人,Apache CouchDB委員會成員,《CouchDB:The Definitive Guide》一書的作者 “如果讓我來推薦一本學(xué)習(xí)JavaScript的最佳書籍,我一定會推薦本書。” ——Rey Bango,微軟客戶端Web社區(qū)項(xiàng)目主管和jQuery團(tuán)隊(duì)成員
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載