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