出版時(shí)間:2008 出版社:清華大學(xué)出版社 作者:月影 頁(yè)數(shù):712
Tag標(biāo)簽:無(wú)
前言
你好,很高興你能翻開(kāi)這本書(shū)——《JavaScript王者歸來(lái)》。 書(shū)名中的“王者”,并不是指我這個(gè)作者,而是指你們——偶然地停下來(lái),饒有興趣地翻閱這本書(shū)的每一位讀者。正是你們對(duì)JavaScript和Web開(kāi)發(fā)的濃厚興趣和熱情,使得Web領(lǐng)域發(fā)生了和正在發(fā)生著翻天覆地的變化,也使得我有信心和毅力去完成這樣一本厚厚的書(shū)。所以,這本書(shū),是獻(xiàn)給你們的,現(xiàn)在的和將來(lái)的JavaScript王者們! 這是一本什么樣的書(shū)呢?作為作者,我很希望它能成為一本帶著神奇力量的魔法書(shū),能夠?qū)⒛銓?duì)技術(shù)的興趣,轉(zhuǎn)化為神奇的魔力,幫助你在Web應(yīng)用中寫(xiě)出不可思議的奇跡般的漂亮代碼。當(dāng)然,也許這只是我的一個(gè)美好的愿望,但是如果你是帶著興趣和熱情來(lái)讀這本書(shū),并且愿意和我一起探尋JavaScript王國(guó)的奧秘,那么,這本書(shū)中一定有著能讓你著迷的東西?! avaScript是一位美麗而又難以捉摸的叢林女神,她干凈利落而又變化多端,她的美麗能夠帶給你喜悅和幸福感,她的善變,卻又讓你深深地陷入困惑之中。有時(shí)候,你本能地想逃避她,內(nèi)心里又離不開(kāi)她。你覺(jué)得她單純,可是你看不透她,你覺(jué)得她難以捉摸,可是她卻偏偏又有著簡(jiǎn)單乖巧的一面。這樣的一種語(yǔ)言,是充滿魅力的魔法精靈,難道你就不想看清她的真面目,讀懂她,讓她幫助你創(chuàng)造出激動(dòng)人心的神跡嗎?來(lái)吧,翻開(kāi)這本書(shū),你的愿望能夠?qū)崿F(xiàn)?! ∪绻闶且晃粍倓偨佑|到豐富多彩的Web世界,希望自己也能夠制作出那些美麗多彩的頁(yè)面的人,那么請(qǐng)相信我,這本書(shū)是為你準(zhǔn)備的,通過(guò)閱讀它,能夠使你具備創(chuàng)建和駕馭屬于你自己的Web國(guó)度的能力?! ∪绻闶且晃慌既坏卦跒g覽器頁(yè)面代碼中發(fā)現(xiàn)一小段包含在標(biāo)記之間的小腳本,并且希望弄明白它的人,那么請(qǐng)相信我,這本書(shū)是為你準(zhǔn)備的,如果你有耐心讀完它,你將能夠自由地讓你的意志在標(biāo)記之間飛揚(yáng)?! ∪绻闶且晃幻允г跓o(wú)數(shù)腳本和特效之間的旅行者,那么請(qǐng)相信我,這本書(shū)是為你準(zhǔn)備的。來(lái)和我一起在Web的湖泊中暢游吧,我必將帶你離開(kāi)迷宮和陷阱,讓你看到腳下的這個(gè)王國(guó)是多么的美好,你將成為一位英明的王,而不再是無(wú)助的迷路人。 如果你是一位飽受腳本困擾的程序員,那么請(qǐng)相信我,這本書(shū)是為你準(zhǔn)備的,請(qǐng)和我一起打開(kāi)纏繞在你心頭的枷鎖,你會(huì)發(fā)現(xiàn)你手中握著的是一把神奇的利刃,這把神兵將不再割傷你自己,而是被你支配,成為在Web世界里助你開(kāi)拓疆土的神器?! ∪绻闶且晃辉谀_本泥潭中掙扎的項(xiàng)目經(jīng)理,那么請(qǐng)相信我,這本書(shū)也是為你準(zhǔn)備的,我發(fā)誓我有能力帶你離開(kāi)我自己曾經(jīng)掙扎過(guò)的地方,當(dāng)你離開(kāi)了陷阱,你將發(fā)現(xiàn)以前你無(wú)暇顧及的世界,原來(lái)是那么的美好?! ∷蟹_(kāi)了這本書(shū)并喜愛(ài)著JavaScript的讀者們,愿腳本神力與你們同在! 關(guān)于版權(quán) 本書(shū)中的部分內(nèi)容來(lái)自于網(wǎng)絡(luò)上公開(kāi)的文章,所有有出處的文字都盡量標(biāo)注出原始的出處,包括原文作者、首發(fā)網(wǎng)址和譯者。引用為例子的代碼在盡可能的情況下得到作者本人的同意。如果對(duì)這部分內(nèi)容有任何疑義,請(qǐng)及時(shí)與作者聯(lián)系?! ”緯?shū)中的部分文字參考或者直接引用了《JavaScript權(quán)威指南》第四版,作者David Flanagan,譯者張銘澤等,O’REILLY授權(quán)機(jī)械工業(yè)出版社2006年9月出版。凡是明確引用此書(shū)內(nèi)容和參考此書(shū)內(nèi)容的部分,筆者也在書(shū)中盡量注明(正文中統(tǒng)一用【1】來(lái)表示),如果因?yàn)橐迷膬?nèi)容而產(chǎn)生的任何問(wèn)題,請(qǐng)及時(shí)與作者聯(lián)系?! ?shū)中相關(guān)章節(jié)的表格(表 XX.AA)大多數(shù)來(lái)源于《JavaScript權(quán)威指南》和互聯(lián)網(wǎng),在正文里不再做一一說(shuō)明,如果對(duì)此有任何疑義,請(qǐng)及時(shí)與作者聯(lián)系?! ≈轮x 雖然這幾年來(lái)我一直致力于推廣JavaScript技術(shù)和Web標(biāo)準(zhǔn),但是如果離開(kāi)了時(shí)時(shí)刻刻支持和鼓勵(lì)著我的朋友們,這樣一本涉及到JavaScript方方面面的書(shū),以我個(gè)人微不足道的力量是不可能完成的。這本書(shū)的面市凝聚著無(wú)數(shù)關(guān)心我的朋友們的心血,他們中的一些人是我的同事,另一些人是我在無(wú)憂腳本(www.51js.com)結(jié)識(shí)的伙伴,還有許許多多通過(guò)網(wǎng)絡(luò)聯(lián)系的未曾謀面的朋友。他們的每一分鼓勵(lì)、每一個(gè)思想、和每一點(diǎn)意見(jiàn)都是我創(chuàng)作的靈感和力量的源泉,沒(méi)有他們,就永遠(yuǎn)也不會(huì)有這樣一本出自我手的書(shū),在此我要向他們表示由衷的感謝?! ∥以诮鸬ぷ鞯耐略谖覍?xiě)這本書(shū)的時(shí)候,不但為我提出了各種建議,而且毫無(wú)怨言地分擔(dān)了我的工作,體貼地為我留出足夠的創(chuàng)作時(shí)間。在這里我要感謝jimi、張錦、小陸、阿日、建新、大琴、老丁、謝汀以及其他的和我共同奮斗的金蝶MOP團(tuán)隊(duì)的兄弟姐妹,謝謝你們的努力工作,謝謝你們對(duì)我的默默支持?! ∥覄?chuàng)作這本書(shū)的大量靈感來(lái)源于我和無(wú)憂腳本以及CSDN論壇上的朋友們的交流。我們總是一起探討關(guān)于腳本的深入話題,有時(shí)候達(dá)成一致意見(jiàn),也有時(shí)候產(chǎn)生分歧甚至激烈的爭(zhēng)執(zhí)。靈感的火花總是在思維碰撞中產(chǎn)生的,和你們的討論讓我學(xué)到了很多東西,也直接地決定了這本書(shū)的內(nèi)容組織和觀點(diǎn)形成。在此,我要感謝所有在無(wú)憂腳本和CSDN結(jié)識(shí)的JS高手們,感謝幻宇、寶玉、梅花雪、周愛(ài)民、萬(wàn)常華、海浪、梅雪香、dron、stone、劉杰、biyuan、泣紅亭、winter和asfman以及其他所有和我一起討論共同進(jìn)步的JSers們,謝謝你們。 我在04年從學(xué)校里畢業(yè)的時(shí)候,還對(duì)JavaScript一無(wú)所知,我自學(xué)JavaScript使用的第一本教材就是David Flanagan的《JavaScript權(quán)威指南》,如果沒(méi)有這本出色的教材,我可能永遠(yuǎn)也不會(huì)對(duì)JavaScript有今天這種程度的理解。本書(shū)的基礎(chǔ)部分的許多基本概念、觀點(diǎn)和結(jié)論,也和《JavaScript權(quán)威指南》保持一致。在此感謝David Flanagan、Brendan Eich和《JavaScript權(quán)威指南》,沒(méi)有你們的幫助,也許我現(xiàn)在還是一位JavaScript的門(mén)外漢?! ∵@是我寫(xiě)的第一本技術(shù)類(lèi)的書(shū),在此之前,我完全沒(méi)有創(chuàng)作教程的經(jīng)驗(yàn),是我的編輯陳冰鼓勵(lì)我創(chuàng)作這本書(shū)。而且在我撰寫(xiě)這本書(shū)的一年里,他耐心細(xì)致地閱讀了我每一章節(jié)的稿件,提出了許多意見(jiàn)和建議,并一次又一次地督促我改進(jìn)稿件,直至最終完成。如果沒(méi)有陳冰的耐心指導(dǎo)和幫助,我永遠(yuǎn)也寫(xiě)不出這樣一本書(shū)。 Web技術(shù)的飛速發(fā)展使得JavaScript這門(mén)腳本語(yǔ)言日漸被人們所重視,Web標(biāo)準(zhǔn)化工作的推進(jìn),也使得JavaScript變得越來(lái)越完善和優(yōu)美,也變得越來(lái)越神奇。在這里我要感謝所有為Web技術(shù)發(fā)展做出貢獻(xiàn)的技術(shù)人員,沒(méi)有你們的努力,就沒(méi)有JavaScript生存和發(fā)展的土壤。感謝W3C和ECMA組織孜孜不倦地進(jìn)行的標(biāo)準(zhǔn)化工作,如果沒(méi)有這些努力,JavaScript也許到今天仍然只是Web舞臺(tái)一個(gè)不起眼的角落里的小配角?! ∽詈?,我要感謝我親愛(ài)的父母,沒(méi)有你們對(duì)我的愛(ài),今天的我就不可能擁有我喜歡的事業(yè),寫(xiě)出我喜歡的書(shū),我也要將我的這本書(shū)獻(xiàn)給你們。我永遠(yuǎn)愛(ài)著你們?! 橇痢 ?008年1月10日
內(nèi)容概要
《JavaScript王者歸來(lái)》不僅是一本傳播知識(shí)的書(shū),更是一本求道的書(shū)?!禞avaScript王者歸來(lái)》分為五個(gè)部分循序漸進(jìn)地與讀者討論了JavaScript的方方面面,從簡(jiǎn)單的語(yǔ)言基礎(chǔ)到豐富的實(shí)際應(yīng)用再到深入剖析語(yǔ)言本質(zhì)的高級(jí)話題,字里行間包含著作者多年工作中對(duì)JavaScript實(shí)踐乃至程序設(shè)計(jì)思想的深入思考和總結(jié)?!禞avaScript王者歸來(lái)》揭開(kāi)了JavaScript的面紗,繞過(guò)誤解和虛幻的表象,引領(lǐng)你探索程序王國(guó)的奧妙。它既是一本為初學(xué)者準(zhǔn)備的入門(mén)級(jí)教程,又是一本探尋程序設(shè)計(jì)思想本源的“魔法典籍”,也是一本W(wǎng)eb開(kāi)發(fā)工程師們需要的案頭參考書(shū)?!禞avaScript王者歸來(lái)》是你進(jìn)入腳本王國(guó)的一把鑰匙,引導(dǎo)你領(lǐng)略腳本魔法的神奇魅力。它還是一本著眼于未來(lái)改變互聯(lián)網(wǎng)的啟蒙讀物,在它的引領(lǐng)下,你將在互聯(lián)網(wǎng)的世界里獲得你所希望得到的知識(shí)、智慧、成就和快樂(lè)。
作者簡(jiǎn)介
吳亮,(網(wǎng)名月影),早年曾在微軟亞洲研究院做過(guò)訪問(wèn)學(xué)生、在金蝶軟件有限公司先后擔(dān)任過(guò)核心開(kāi)發(fā)工程師、設(shè)計(jì)師和項(xiàng)目經(jīng)理,現(xiàn)任百度電子商務(wù)事業(yè)部Web開(kāi)發(fā)項(xiàng)目經(jīng)理。多年來(lái)致力于JavaScript技術(shù)和Web標(biāo)準(zhǔn)的推廣,活躍于國(guó)內(nèi)極有影響力的JavaScript專(zhuān)業(yè)網(wǎng)站——無(wú)憂腳本(www.51js.com),并任JavaScript版的版主。平時(shí)熱愛(ài)文學(xué)、寫(xiě)作和圍棋。
書(shū)籍目錄
第一部分 概論第1章 從零開(kāi)始1.1 為什么選擇JavaScript?1.1.1 用戶的偏好--B/S模式1.1.2 在什么情況下用JavaScript1.1.3 對(duì)JavaScript的一些誤解1.1.3.1 JavaScript和Java的關(guān)系1.1.3.2 披著C外衣的Lisp1.1.3.3 關(guān)于JavaScript的思維定勢(shì)1.1.3.4 JavaScript是為業(yè)余愛(ài)好者設(shè)計(jì)的?1.1.3.5 JavaScript是面向?qū)ο蟮膯?.1.3.6 其他誤解1.1.4 警惕!腳本誘惑1.1.5 隱藏在簡(jiǎn)單表象下的復(fù)雜度1.1.6 令人迷惑的選擇--錦上添花還是雪中送炭1.1.7 回到問(wèn)題上來(lái)1.2 JavaScript的應(yīng)用范圍1.2.1 客戶端的JavaScript1.2.2 服務(wù)器端的JavaScript1.2.3 其他環(huán)境中的JavaScript1.3 JavaScript的版本1.3.1 瀏覽器中的JavaScript版本1.3.2 其他版本1.4 一些值得留意的特性1.4.1 小把戲--神奇的魔法代碼1.4.2 為客戶端服務(wù)--經(jīng)典Hello World!的另一種JavaScript實(shí)現(xiàn)1.4.3 數(shù)據(jù)交互--JavaScript的一項(xiàng)強(qiáng)大功能1.4.4 JavaScript表面上的禁忌及如何突破這些禁忌1.5 安全性和執(zhí)行效率1.5.1 數(shù)據(jù)安全--永遠(yuǎn)的敏感話題1.5.2 實(shí)戰(zhàn)!攻擊與防范1.5.3 不容馬虎--時(shí)刻關(guān)注性能1.6 一個(gè)例子--JavaScript編寫(xiě)的計(jì)算器1.6.1 從需求分析開(kāi)始--什么是計(jì)算器?1.6.2 系統(tǒng)設(shè)計(jì)--如何實(shí)現(xiàn)計(jì)算器?1.6.3 系統(tǒng)實(shí)現(xiàn)--計(jì)算器的最終實(shí)現(xiàn)1.6.4 持續(xù)改進(jìn)--迭代的軟件開(kāi)發(fā)過(guò)程1.7 學(xué)習(xí)和使用JavaScript的幾點(diǎn)建議1.7.1 像程序員一樣地思考--程序員的四個(gè)境界1.7.2 吝惜你的代碼1.7.3 學(xué)會(huì)在環(huán)境中調(diào)試1.7.4 警惕那些小缺陷1.7.5 思考先于實(shí)踐--不要輕易動(dòng)手寫(xiě)代碼1.7.6 時(shí)刻回頭--圣賢也無(wú)法完全預(yù)知未來(lái)1.8 關(guān)于本書(shū)的其余部分第2章 瀏覽器中的JavaScript2.1 嵌入網(wǎng)頁(yè)的可執(zhí)行內(nèi)容2.1.1 在什么地方裝載JavaScript代碼2.1.2 關(guān)于代碼的Script標(biāo)簽2.1.3 我的代碼什么時(shí)候被執(zhí)行--不同執(zhí)行期的JavaScript代碼2.1.4 拿來(lái)主義--引入外部的JavaScript文件2.2 賞心悅目的特效2.2.1 生命在于運(yùn)動(dòng)--DHTML的效果2.2.2 換一種風(fēng)格--CSS的力量2.2.3 用JavaScript操作DOM--一個(gè)可拖動(dòng)窗口的例子2.3 使用JavaScript來(lái)與用戶交互2.3.1 創(chuàng)建一個(gè)彈出式幫助和進(jìn)度條2.3.2 填錯(cuò)了哦2.4 繞開(kāi)腳本陷阱2.4.1 現(xiàn)實(shí)并不總是完美的2.4.2 不能完全相信你所見(jiàn)到的2.5 總結(jié)第3章 開(kāi)發(fā)環(huán)境和調(diào)試方法3.1 我能用什么來(lái)編寫(xiě)腳本--適合編寫(xiě)JavaScript的文本編輯器3.2 來(lái)自瀏覽器的支持3.2.1 主流瀏覽器3.2.2 非主流瀏覽器3.3 集成開(kāi)發(fā)環(huán)境3.3.1 什么是集成開(kāi)發(fā)環(huán)境3.3.2 我需要集成開(kāi)發(fā)環(huán)境嗎3.3.3 適合JavaScript的集成開(kāi)發(fā)環(huán)境3.4 調(diào)試工具--提升開(kāi)發(fā)效率的利器3.4.1 什么是調(diào)試3.4.2 原始的調(diào)試方法--利用輸出語(yǔ)句、“反射”機(jī)制和調(diào)試對(duì)象來(lái)進(jìn)行調(diào)試3.4.3 適合JavaScript的調(diào)試工具3.5 定位代碼和調(diào)用堆棧3.5.1 Step by Step--單步和斷點(diǎn)3.5.2 監(jiān)視內(nèi)存3.5.3 追蹤問(wèn)題的源頭--查看調(diào)用堆棧3.5.4 遇到麻煩了--為什么我跟蹤不到代碼3.6 瀏覽器捕獲異常3.6.1 異常處理機(jī)制--一個(gè)try/catch/finally模式的例子3.6.2 異常的種類(lèi)3.6.3 應(yīng)該在什么時(shí)候“吃掉”異常3.7 總結(jié)第二部分 JavaScript核心第4章 語(yǔ)言結(jié)構(gòu)4.1 JavaScript的基本文法4.1.1 字符集4.1.2 大小寫(xiě)敏感4.1.3 分隔符4.1.4 詞、句子和段落4.1.5 分號(hào)4.1.6 標(biāo)記4.1.7 注釋4.1.8 保留字4.2 常量和變量4.2.1 常量和變量4.2.2 變量的標(biāo)識(shí)符4.2.3 變量的類(lèi)型4.2.4 變量的聲明4.2.5 變量的作用域4.3 表達(dá)式和運(yùn)算符4.3.1 表達(dá)式4.3.2 運(yùn)算符概述4.3.3 算術(shù)運(yùn)算符4.3.4 關(guān)系運(yùn)算符4.3.5 邏輯運(yùn)算符4.3.6 位運(yùn)算符4.3.7 賦值運(yùn)算符4.3.8 其他運(yùn)算符4.3.8.1 條件運(yùn)算符4.3.8.2 逗號(hào)運(yùn)算符4.3.8.3 對(duì)象運(yùn)算符4.3.8.4 類(lèi)型運(yùn)算符4.3.8.5 void運(yùn)算符4.3.8.6 函數(shù)調(diào)用運(yùn)算符4.4 控制語(yǔ)句4.4.1 表達(dá)式語(yǔ)句4.4.2 語(yǔ)句塊4.4.3 條件語(yǔ)句4.4.4 循環(huán)語(yǔ)句4.4.5 跳轉(zhuǎn)語(yǔ)句4.4.6 異常處理語(yǔ)句4.4.7 其他語(yǔ)句4.4.7.1 var語(yǔ)句4.4.7.2 function語(yǔ)句4.4.7.3 with語(yǔ)句4.4.7.4 空語(yǔ)句4.5 總結(jié)第5章 數(shù)據(jù)類(lèi)型5.1 基本數(shù)據(jù)類(lèi)型5.1.1 數(shù)值5.1.2 字符串--一個(gè)字符串相關(guān)操作的例子5.1.3 布爾型5.2 數(shù)組和對(duì)象5.2.1 數(shù)組5.2.2 對(duì)象--一個(gè)構(gòu)造函數(shù)的例子5.3 函數(shù)類(lèi)型--一個(gè)函數(shù)和閉包的例子5.4 神奇的null和undefined5.4.1 null5.4.2 undefined--獨(dú)一無(wú)二的類(lèi)型5.5 正則表達(dá)式5.5.1 正則表達(dá)式常量5.5.2 正則表達(dá)式對(duì)象5.6 值類(lèi)型和引用類(lèi)型5.6.1 什么是值和值的引用5.6.2 使用值和使用引用5.6.3 值與引用的相互轉(zhuǎn)換:裝箱和拆箱5.7 類(lèi)型識(shí)別與類(lèi)型轉(zhuǎn)換5.7.1 運(yùn)行時(shí)類(lèi)型識(shí)別--兩個(gè)運(yùn)行的類(lèi)型識(shí)別的例子5.7.2 類(lèi)型的自動(dòng)轉(zhuǎn)換及其例子5.7.3 強(qiáng)制類(lèi)型轉(zhuǎn)換及其例子5.7.4 高級(jí)用法--一個(gè)自定義類(lèi)型轉(zhuǎn)換的例子5.8 警惕數(shù)值陷阱5.8.1 困惑--浮點(diǎn)數(shù)的精度問(wèn)題5.8.2 誤差的修正及其例子5.9 總結(jié)第6章 函數(shù)6.1 函數(shù)定義和函數(shù)調(diào)用6.1.1 函數(shù)的定義6.1.1.1 聲明式函數(shù)定義與函數(shù)表達(dá)式及其例子6.1.1.2 JavaScript函數(shù)的奧妙——魔法代碼6.1.2 函數(shù)的調(diào)用6.2 函數(shù)的參數(shù)6.2.1 形參與實(shí)參6.2.2 Arguments對(duì)象6.2.2.1 一個(gè)使用Arguments對(duì)象檢測(cè)形參的例子6.2.2.2 一個(gè)使用Arguments對(duì)象接收任意個(gè)數(shù)參數(shù)的例子6.2.2.3 一個(gè)使用Arguments對(duì)象模擬函數(shù)重載的例子6.2.3 參數(shù)類(lèi)型匹配--一個(gè)利用arguments實(shí)現(xiàn)函數(shù)重載機(jī)制的例子6.3 函數(shù)的調(diào)用者和所有者6.3.1 函數(shù)的調(diào)用者6.3.2 函數(shù)的所有者--一個(gè)為函數(shù)指定所有者的例子6.3.3 動(dòng)態(tài)調(diào)用--外來(lái)的所有者6.4 函數(shù)常量和閉包6.4.1 匿名的函數(shù)6.4.2 函數(shù)引用6.4.3 函數(shù)參數(shù)和函數(shù)返回值及其例子6.4.4 高級(jí)用法--閉包作為局部域與延遲求值6.5 高級(jí)抽象--Function類(lèi)型和函數(shù)模版6.5.1 動(dòng)態(tài)創(chuàng)建函數(shù)--一個(gè)利用Function實(shí)現(xiàn)Lambda算子的例子6.5.2 模式--函數(shù)工廠及其實(shí)例6.6 總結(jié)第7章 對(duì)象7.1 什么是對(duì)象7.2 對(duì)象的屬性和方法7.2.1 對(duì)象的內(nèi)置屬性7.2.2 為對(duì)象添加和刪除屬性7.2.3 反射機(jī)制--枚舉對(duì)象屬性7.3 對(duì)象的構(gòu)造7.3.1 構(gòu)造函數(shù)--一個(gè)雙精度浮點(diǎn)數(shù)封裝類(lèi)的例子7.3.2 缺省構(gòu)造和拷貝構(gòu)造7.3.3 對(duì)象常量7.4 對(duì)象的銷(xiāo)毀和存儲(chǔ)單元的回收7.5 JavaScript的內(nèi)置對(duì)象7.5.1 Math對(duì)象7.5.2 Date對(duì)象--創(chuàng)建一個(gè)簡(jiǎn)單的日歷7.5.3 Error對(duì)象7.5.4 其他內(nèi)置對(duì)象7.5.5 特殊的對(duì)象--全局對(duì)象與調(diào)用對(duì)象7.6 總結(jié)第8章 集合8.1 數(shù)組和數(shù)組元素8.1.1 數(shù)組的構(gòu)造8.1.2 數(shù)組常量8.1.3 數(shù)組元素8.2 數(shù)組對(duì)象和方法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 哈希表的構(gòu)造8.3.3 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的HashTable類(lèi)型8.4 高級(jí)用法--集合操作和閉包8.5 總結(jié)第9章 字符串9.1 字符串的構(gòu)造9.1.1 字符串常量9.1.2 轉(zhuǎn)義序列9.1.3 字符串構(gòu)造函數(shù)9.2 字符串的使用9.2.1 比較字符串9.2.2 抽取和檢索子串9.2.3 連接拆分字符串9.2.4 字符串的模式匹配--一個(gè)字符串格式校驗(yàn)的例子9.2.5 其他方法9.3 字符串與字符數(shù)組9.4 字符串與文本處理--JavaScript棋譜閱讀器(一)9.4.1 需求分析--什么是棋譜和棋譜閱讀器9.4.2 系統(tǒng)設(shè)計(jì)--棋譜和棋盤(pán)數(shù)據(jù)的字符串描述9.4.3 系統(tǒng)實(shí)現(xiàn)--解析和處理棋譜9.4.4 完整的棋譜閱讀器9.5 總結(jié)第10章 正則表達(dá)式10.1 什么是正則表達(dá)式10.1.1 正則表達(dá)式的概念10.1.2 JavaScript中的正則表達(dá)式10.2 正則表達(dá)式的規(guī)則10.2.1 直接量字符10.2.2 字符類(lèi)和布爾操作10.2.3 重復(fù)10.2.4 選擇、分組和引用10.2.5 指定匹配的位置10.2.6 標(biāo)志——高級(jí)模式匹配的規(guī)則10.3 模式匹配10.3.1 用于模式匹配的String方法及其例子10.3.2 用于模式匹配的RegExp方法10.3.2.1 一個(gè)使用exec()方法從身份證號(hào)碼獲取生日的例子10.3.2.2 一個(gè)使用test()方法遍歷字符串的例子10.4 關(guān)于正則表達(dá)式包裝對(duì)象10.4.1 RegExp對(duì)象——利用正則表達(dá)式實(shí)現(xiàn)全文檢索10.4.2 RegExp的實(shí)例屬性10.5 強(qiáng)大的正則表達(dá)式10.5.1 分析正則表達(dá)式的局部10.5.2 一個(gè)例子--強(qiáng)大的在線編輯器10.5.3 構(gòu)造新的文法--一個(gè)在JSVM中實(shí)現(xiàn)JSVM2解析器的例子10.6 高級(jí)用法10.7 用正則表達(dá)式處理文本10.7.1 創(chuàng)建一個(gè)計(jì)價(jià)公式編輯器10.7.1.1 需求分析--什么是計(jì)價(jià)公式編輯器10.7.1.2 系統(tǒng)實(shí)現(xiàn)--計(jì)價(jià)公式編輯器的實(shí)現(xiàn)10.7.2 創(chuàng)建一個(gè)同步滾動(dòng)歌詞播放器10.7.2.1 需求分析--什么是同步滾動(dòng)歌詞播放器10.7.2.2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)--處理LRC歌詞10.8 總結(jié)第三部分 瀏覽器與DOM第11章 瀏覽器對(duì)象11.1 Window對(duì)象--最基本的瀏覽器對(duì)象11.1.1 Window對(duì)象概覽11.1.2 Window對(duì)象的生命周期11.1.3 Window對(duì)象的屬性和方法11.1.4 一個(gè)多窗口應(yīng)用的例子11.2 Document對(duì)象--瀏覽器窗口文檔內(nèi)容的代表11.2.1 Document對(duì)象概覽11.2.2 動(dòng)態(tài)生成的文檔11.2.3 Document對(duì)象的基本信息11.2.4 Document對(duì)象的外觀屬性11.2.5 Document子對(duì)象接口11.2.5.1 一個(gè)遍歷Anchors對(duì)象的例子11.2.5.2 一個(gè)顛倒圖片的例子11.3 對(duì)話框和狀態(tài)欄11.3.1 創(chuàng)建一個(gè)簡(jiǎn)單對(duì)話框11.3.2 其他類(lèi)型的對(duì)話框11.3.2.1 模擬對(duì)話框--創(chuàng)建一個(gè)窗口對(duì)話框及一個(gè)對(duì)話框阻塞進(jìn)行的例子11.3.2.2 showModalDialog和showModelessDialog--非W3C或ECMAScrip標(biāo)準(zhǔn)11.3.3 狀態(tài)欄11.4 框架--上層的Window對(duì)象11.4.1 多框架應(yīng)用11.4.2 框架之間的關(guān)系11.4.3 框架的命名11.4.4 子框架中的JavaScript11.4.5 框架的應(yīng)用--多頁(yè)簽顯示11.4.5.1 什么是頁(yè)簽11.4.5.2 頁(yè)簽的實(shí)現(xiàn)--創(chuàng)建一個(gè)包含頁(yè)簽的頁(yè)面11.5 表單和表單對(duì)象11.5.1 Form對(duì)象及其范例11.5.2 定義表單元素11.5.3 客戶端表單校驗(yàn)及其例子11.5.4 創(chuàng)建一款通用的客戶端表單校驗(yàn)組件11.6 其他內(nèi)置對(duì)象11.6.1 Navigator對(duì)象--瀏覽器總體信息的代表11.6.2 Screen對(duì)象--提供顯示器分辨率和可用顏色數(shù)量信息11.6.3 Location對(duì)象--當(dāng)前窗口中顯示文檔的URL的代表11.6.4 History對(duì)象--一個(gè)有趣的對(duì)象11.7 總結(jié)第12章 文檔對(duì)象模型12.1 什么是DOM12.1.1 把文檔表示為樹(shù)12.1.2 樹(shù)的節(jié)點(diǎn)12.1.3 DOM對(duì)象的通用屬性和方法12.1.4 HTML結(jié)構(gòu)和DOM對(duì)象的關(guān)系--用JavaScript通過(guò)DOM來(lái)操作HTML文檔12.2 DOM與瀏覽器實(shí)現(xiàn)12.2.1 關(guān)于DOM HTML API12.2.2 DOM的級(jí)別和特性12.2.3 DOM的一致性12.2.4 差異性--瀏覽器的DOM方言12.3 一組“盒子”--DOM元素12.3.1 嵌套的“盒子”12.3.2 “盒子”和“盒子”內(nèi)容的分類(lèi)12.4 創(chuàng)建和刪除節(jié)點(diǎn)12.4.1 構(gòu)造全新的節(jié)點(diǎn)12.4.2 平面展開(kāi)--通過(guò)文檔元素直接創(chuàng)建12.4.3 回收空間--刪除不用的節(jié)點(diǎn)12.5 訪問(wèn)和操縱DOM節(jié)點(diǎn)12.5.1 打開(kāi)每一個(gè)盒子--遍歷節(jié)點(diǎn)12.5.2 弄清層級(jí)關(guān)系--父子與兄弟12.5.3 如何搜索特定節(jié)點(diǎn)12.5.4 克隆節(jié)點(diǎn)--一個(gè)使用cloneNode()復(fù)制表格的例子12.5.5 移動(dòng)節(jié)點(diǎn)及其范例12.5.6 關(guān)于添加新行和排序的小技巧12.6 讀寫(xiě)數(shù)據(jù)--添加、修改和刪除屬性12.7 外觀與行為12.7.1 DOM樣式屬性12.7.2 控制DOM元素的顯示與隱藏12.7.3 改變顏色和大小--一個(gè)簡(jiǎn)單有趣的例子12.7.4 改變位置--創(chuàng)建一個(gè)繞圓圈旋轉(zhuǎn)的文字12.7.5 編輯控制及其范例12.7.6 改變樣式及其范例12.7.7 改變行為12.8 XML DOM12.8.1 什么是XML DOM12.8.2 如何使用XML DOM--一個(gè)利用XML實(shí)現(xiàn)多級(jí)關(guān)聯(lián)下拉選擇框的例子12.9 總結(jié)第13章 事件處理13.1 什么是事件13.1.1 消息與事件響應(yīng)13.1.2 瀏覽器的事件驅(qū)動(dòng)機(jī)制13.2 基本事件處理13.2.1 事件和事件類(lèi)型13.2.2 事件的綁定13.2.3 直接調(diào)用事件處理函數(shù)13.2.4 事件處理函數(shù)的返回值13.2.5 帶參數(shù)的事件響應(yīng)及其例子13.2.6 “this”關(guān)鍵字13.3 標(biāo)準(zhǔn)事件模型13.3.1 起泡和捕捉--瀏覽器的事件傳播13.3.2 事件處理函數(shù)的注冊(cè)13.3.3 把對(duì)象注冊(cè)為事件處理程序13.3.4 事件模塊和事件類(lèi)型13.3.5 關(guān)于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 瀏覽器的事件處理模型實(shí)現(xiàn)13.4.1 Internet Explorer事件模型13.4.1.1 關(guān)于IE事件注冊(cè)13.4.1.2 IE Event對(duì)象的屬性13.4.1.3 IE中的事件起泡13.4.2 Netscape 4事件模型13.4.2.1 Netscape 4中的事件捕捉及其范例13.4.2.2 Netscape 4 Event對(duì)象的屬性13.5 回調(diào)與用戶自定義事件13.5.1 事件處理模式--一個(gè)實(shí)現(xiàn)簡(jiǎn)單事件處理模式的例子13.5.2 用戶事件接口的定義13.5.3 事件代理和事件注冊(cè)--一個(gè)實(shí)現(xiàn)標(biāo)準(zhǔn)事件接口的例子13.5.4 標(biāo)準(zhǔn)模式--事件分派和接收13.6 一個(gè)例子--增強(qiáng)數(shù)據(jù)表格13.6.1 什么是增強(qiáng)數(shù)據(jù)表格13.6.2 一個(gè)采用兩重table嵌套方式固定表頭的例子13.6.3 可變列寬的實(shí)現(xiàn)13.6.4 標(biāo)記行--呈現(xiàn)有別于其他行的背景色13.6.5 小技巧--將代碼添加到樣式表13.7 總結(jié)第14章 級(jí)聯(lián)樣式表14.1 什么是級(jí)聯(lián)樣式表14.1.1 CSS樣式和樣式表14.1.2 CSS的標(biāo)準(zhǔn)化14.1.3 瀏覽器支持的CSS14.2 JavaScript與CSS14.2.1 CSS和DOM的關(guān)系14.2.2 CSS和IE的關(guān)系14.2.3 瀏覽器的CSS兼容性14.3 控制CSS改變頁(yè)面風(fēng)格14.3.1 實(shí)現(xiàn)結(jié)構(gòu)與表現(xiàn)的分離及其范例14.3.2 使用JwaScript和CSS實(shí)現(xiàn)頁(yè)面多種風(fēng)格的實(shí)時(shí)替換14.4 總結(jié)第15章 數(shù)據(jù)存儲(chǔ)的腳本化15.1 什么是cookie15.1.1 瀏覽器和客戶端cookie15.1.2 cookie的屬性15.2 cookie的客戶端存取15.2.1 cookie的存儲(chǔ)15.2.2 cookie的讀取15.3 cookie的限制15.4 cookie示例--讓問(wèn)候更加溫暖15.5 cookie對(duì)象的封裝15.6 什么是userData15.6.1 瀏覽器和客戶端userData15.6.2 userData的聲明15.6.3 userData的屬性和方法15.7 userData的客戶端存取15.7.1 userData的存儲(chǔ)和讀取15.7.2 userData的安全性15.8 userData的限制15.9 userData與cookie的對(duì)比15.10 userData示例--一個(gè)利用userData實(shí)現(xiàn)客戶端保存表單數(shù)據(jù)的例子15.11 總結(jié)第四部分 數(shù)據(jù)交互第16章 同步和異步16.1 什么是同步和異步16.2 超時(shí)設(shè)定和時(shí)間間隔16.3 定時(shí)器使用--偵聽(tīng)與攔截16.3.1 標(biāo)準(zhǔn)模式--監(jiān)視器及其范例16.3.2 使用定時(shí)器時(shí)應(yīng)當(dāng)注意的問(wèn)題16.4 一個(gè)例子--漂亮的Web時(shí)鐘16.4.1 什么是Web時(shí)鐘?16.4.2 最簡(jiǎn)單的Web時(shí)鐘16.4.3 Web時(shí)鐘的設(shè)計(jì)16.4.4 完整的Web時(shí)鐘源代碼16.5 總結(jié)第17章 XML DOM和XML HTTP17.1 什么是XML DOM對(duì)象17.1.1 XML DOM簡(jiǎn)介17.1.2 瀏覽器支持的XML DOM接口17.1.2.1 XML DOM標(biāo)準(zhǔn)接口17.1.2.2 IE的XML DOM組件17.1.2.3 操作XML文檔--一個(gè)使用MSXML操作XML文檔的例子17.2 XML DOM的版本兼容性--XML DOM的跨瀏覽器應(yīng)用17.3 XML DOM的錯(cuò)誤處理17.3.1 處理錯(cuò)誤信息的ParseError對(duì)象17.3.2 包含錯(cuò)誤信息的文檔17.4 XML DOM操作XML文檔17.4.1 訪問(wèn)節(jié)點(diǎn)17.4.2 創(chuàng)建新節(jié)點(diǎn)17.4.3 移動(dòng)和修改節(jié)點(diǎn)及其范例17.4.4 讀寫(xiě)節(jié)點(diǎn)屬性和讀寫(xiě)數(shù)據(jù)17.4.5 保存文檔17.5 一個(gè)例子--JavaScript棋譜閱讀器(二)17.5.1 用XML描述棋譜17.5.2 將XML棋譜轉(zhuǎn)換為SGF棋譜17.6 什么是XML HTTP對(duì)象17.6.1 XML HTTP對(duì)象簡(jiǎn)介17.6.2 瀏覽器支持的XML HTTP對(duì)象17.7 通過(guò)XML HTTP發(fā)送請(qǐng)求17.7.1 建立連接17.7.2 發(fā)送請(qǐng)求17.8 讀取和設(shè)定HTTP頭17.8.1 什么是HTTP頭17.8.2 讀取和設(shè)定HTTP頭17.9 服務(wù)器應(yīng)答17.9.1 同步和異步應(yīng)答及其例子17.9.2 包含應(yīng)答文本內(nèi)容的ResponseText 和ResponseXML17.10 總結(jié)第18章 Ajax簡(jiǎn)介18.1 什么是Ajax18.1.1 Ajax并不神秘18.1.2 Ajax的應(yīng)用場(chǎng)景18.1.3 Ajax的競(jìng)爭(zhēng)對(duì)手--其他替代技術(shù)18.2 Ajax初探--我的第一個(gè)Ajax程序18.2.1 從常規(guī)應(yīng)用開(kāi)始--一個(gè)簡(jiǎn)單的實(shí)時(shí)聊天室18.2.2 討厭的頁(yè)面刷新18.2.3 無(wú)刷新解決方案--改進(jìn)的聊天室18.2.4 異步工作--遲滯感的解決方案18.3 Ajax原理剖析18.3.1 XML HTTP實(shí)時(shí)通信及一個(gè)簡(jiǎn)單封裝了AjaxProxy對(duì)象的例子18.3.2 數(shù)據(jù)動(dòng)態(tài)顯示--Ajax改善交互體驗(yàn)的重要特點(diǎn)18.3.3 發(fā)揮XML的能力18.3.4 用JavaScript綁定一切18.3.5 應(yīng)用背后的標(biāo)準(zhǔn)18.4 Ajax范例--實(shí)時(shí)聊天工具18.4.1 什么是實(shí)時(shí)聊天工具18.4.2 需求分析--實(shí)時(shí)聊天功能的實(shí)現(xiàn)要點(diǎn)18.4.3 系統(tǒng)實(shí)現(xiàn)--實(shí)時(shí)聊天功能的實(shí)現(xiàn)18.4.4 小結(jié)18.5 總結(jié)第19章 標(biāo)準(zhǔn)和兼容性19.1 標(biāo)準(zhǔn)化組織19.1.1 W3C和DOM標(biāo)準(zhǔn)19.1.2 ECMA和JavaScript標(biāo)準(zhǔn)19.1.3 互聯(lián)網(wǎng)標(biāo)準(zhǔn)19.2 平臺(tái)和瀏覽器的兼容性19.2.1 最小公分母法19.2.2 防御性編碼19.2.3 客戶端探測(cè)器19.2.4 特性檢測(cè)19.2.5 實(shí)現(xiàn)標(biāo)準(zhǔn)19.2.6 適度停止運(yùn)行19.3 語(yǔ)言版本的兼容性19.3.1 language屬性19.3.2 版本測(cè)試19.4 如何實(shí)現(xiàn)跨瀏覽器應(yīng)用19.4.1 取舍--劃定支持范圍19.4.2 基礎(chǔ)模塊設(shè)計(jì)--獨(dú)立兼容性檢測(cè)19.4.3 劃分運(yùn)行級(jí)別19.4.4 給出正確的信息--不要讓你的代碼保持沉默19.4.5 充分的應(yīng)用測(cè)試--“兼容性魔鬼”總會(huì)趁你不注意時(shí)“踢你的狗”19.4.6 靠近標(biāo)準(zhǔn)和就近原則 19.5 展望未來(lái)19.6 總結(jié)第20章 信息安全20.1 用戶的隱私信息20.2 禁止和受限制的操作20.2.1 受限制的屬性20.2.2 受限制的操作20.2.3 腳本安全級(jí)別20.2.4 腳本調(diào)試20.3 警惕幕后的攻擊者20.3.1 攻擊的手段20.3.2 隱匿的數(shù)據(jù)流20.3.3 頁(yè)面?zhèn)窝b20.3.4 發(fā)現(xiàn)蛛絲馬跡20.3.5 防范的手段20.3.5.1 傳輸數(shù)據(jù)的加密20.3.5.2 對(duì)用戶隱藏源代碼20.4 同源策略20.4.1 什么是同源策略20.4.2 同源策略的利弊20.4.3 突破同源策略20.5 安全區(qū)和簽名腳本20.5.1 可配置的安全策略方案20.5.2 Internet Explorer的安全區(qū)20.5.3 Netscape的簽名腳本20.6 代碼本身的安全--加密和混淆20.6.1 為什么要加密和混淆20.6.2 客戶端的加密技術(shù)及其例子20.6.3 代碼混淆原理20.6.4 JavaScript代碼混淆工具--一個(gè)代碼混淆算法的例子20.6.5 加密和混淆的結(jié)合使用20.7 總結(jié)第五部分 超越JavaScript第21章 面向?qū)ο?1.1 什么面向?qū)ο?1.1.1 類(lèi)和對(duì)象21.1.2 公有和私有--屬性的封裝21.1.3 屬性和方法的類(lèi)型21.2 神奇的prototype21.2.1 什么是prototype21.2.2 prototype的使用技巧21.2.2.1 給原型對(duì)象添加屬性21.2.2.2 帶默認(rèn)值的Point對(duì)象21.2.2.3 delete操作將對(duì)象屬性恢復(fù)為默認(rèn)值21.2.2.4 使用prototype巧設(shè)getter21.2.2.5 delete操作恢復(fù)原型屬性的可見(jiàn)性21.2.2.6 使用prototype創(chuàng)建大量副本21.2.2.7 使用prototype定義靜態(tài)方法21.2.3 prototype的實(shí)質(zhì)及其范例21.2.4 prototype的價(jià)值與局限性21.3 繼承與多態(tài)21.3.1 什么是繼承21.3.2 實(shí)現(xiàn)繼承的方法21.3.2.1 構(gòu)造繼承法及其例子21.3.2.2 原型繼承法及其例子21.3.2.3 實(shí)例繼承法及其例子21.3.2.4 拷貝繼承法及其例子21.3.2.5 幾種繼承法的比較21.3.2.6 混合繼承法及其例子21.3.3 單繼承與多重繼承21.3.4 接口及其實(shí)現(xiàn)21.3.5 多態(tài)及其實(shí)現(xiàn)21.4 構(gòu)造與析構(gòu)21.4.1 構(gòu)造函數(shù)21.4.2 多重構(gòu)造21.4.3 析構(gòu)21.5 疑團(tuán)!“this”迷宮21.5.1 無(wú)數(shù)個(gè)陷阱--令人困擾的“this”謎團(tuán)21.5.1.1 this代詞的運(yùn)用21.5.1.2 this“陷阱”21.5.1.3 this代詞的異步問(wèn)題21.5.2 偷梁換柱--不好的使用習(xí)慣21.5.3 異步調(diào)用--誰(shuí)動(dòng)了我的“this”21.5.4 揭開(kāi)真相--JavaScript的“this”本質(zhì)21.5.5 困難不再--利用閉包修正“this”引用21.6 包裝對(duì)象21.6.1 區(qū)分值和引用21.6.2 裝箱與拆箱21.7 元類(lèi),類(lèi)的模板21.7.1 什么是元類(lèi)21.7.2 元類(lèi)--構(gòu)造類(lèi)的類(lèi)21.7.3 為什么要用元類(lèi)21.7.4 類(lèi)工廠21.7.4.1 什么是類(lèi)工廠21.7.4.2 為什么要建立類(lèi)工廠21.8 誰(shuí)才是造物主21.8.1 萬(wàn)物適用的準(zhǔn)則21.8.2 抽象的極致--一個(gè)抽象模式的例子21.8.3 返璞歸真,同源架構(gòu)21.9 總結(jié)第22章 閉包與函數(shù)式編程22.1 動(dòng)態(tài)語(yǔ)言與閉包22.1.1 動(dòng)態(tài)語(yǔ)言22.1.2 語(yǔ)法域和執(zhí)行域22.1.3 JavaScript的閉包--一個(gè)體現(xiàn)閉包本質(zhì)的例子22.2 閉包的特點(diǎn)與形式22.2.1 閉包的內(nèi)在--自治的領(lǐng)域22.2.2 訪問(wèn)外部環(huán)境--一個(gè)用閉包改變外部環(huán)境的例子22.2.3 閉包和面向?qū)ο?2.2.4 其他形式的閉包22.3 不適合使用閉包的場(chǎng)合22.4 函數(shù)式編程22.4.1 什么是函數(shù)式編程22.4.1.1 函數(shù)是第一型22.4.1.2 閉包與函數(shù)式編程22.4.1.3 科里化(Currying)--一個(gè)有趣的概念22.4.1.4 延遲求值和延續(xù)--一個(gè)Fibonacci無(wú)窮數(shù)列的例子22.4.2 函數(shù)式編程、公式化與數(shù)學(xué)模型--一個(gè)拋物線方程的例子22.4.3 函數(shù)式編程的優(yōu)點(diǎn)22.4.3.1 單元測(cè)試方面的優(yōu)點(diǎn)22.4.3.2 調(diào)試方面的優(yōu)點(diǎn)22.4.3.3 并行方面的優(yōu)點(diǎn)22.4.3.4 代碼熱部署方面的優(yōu)點(diǎn)22.4.3.5 機(jī)器輔助的推理和優(yōu)化22.4.4 函數(shù)式編程的缺點(diǎn)22.4.4.1 閉包的副作用22.4.4.2 遞歸的形式22.4.4.3 延遲求值的副作用22.5 閉包與面向?qū)ο?2.5.1 私有域22.5.2 名字空間管理22.5.3 友元--一個(gè)非常有趣的概念22.6 Python風(fēng)格的JavaScript代碼22.6.1 最簡(jiǎn)約代碼22.6.2 輕量級(jí)重用22.6.2.1 JSON22.6.2.2 Functional22.6.2.3 迭代函數(shù)--一個(gè)Array迭代函數(shù)的例子22.6.3 模塊管理及其范例22.7 總結(jié)第23章 模塊級(jí)管理23.1 模塊化管理23.1.1 模塊化--代碼的重用23.1.2 JavaScript的模塊管理23.2 開(kāi)放封閉原則和面向接口23.2.1 開(kāi)放封閉原則23.2.2 面向接口23.3 名字空間管理23.3.1 什么是名字空間23.3.2 為什么要用名字空間23.3.3 JavaScript的名字空間管理23.4 調(diào)用依賴(lài)23.4.1 模塊的依賴(lài)性23.4.2 模塊依賴(lài)的管理23.5 用代碼管理代碼23.5.1 運(yùn)行時(shí)環(huán)境的管理23.5.2 托管代碼--一個(gè)簡(jiǎn)單的托管代碼“容器”23.5.3 一個(gè)完整的代碼管理容器23.6 總結(jié)第24章 動(dòng)態(tài)構(gòu)建24.1 讓代碼去寫(xiě)代碼24.1.1 腳本的動(dòng)態(tài)解析24.1.2 語(yǔ)法擴(kuò)展--創(chuàng)造屬于自己的語(yǔ)言24.2 “發(fā)明”語(yǔ)法24.2.1 正則表達(dá)式和語(yǔ)法解析及例子24.2.2 一個(gè)簡(jiǎn)單的語(yǔ)法解析器實(shí)現(xiàn)24.2.2.1 什么是JavaScript 2.0語(yǔ)法24.2.2.2 JavaScript 2.0語(yǔ)法的部分關(guān)鍵特性實(shí)現(xiàn)24.3 實(shí)現(xiàn)自己的方言--LispScript24.3.1 從JavaScript到Lisp24.3.2 最初的工作--一般JavaScript代碼24.3.3 公理,表達(dá)式24.3.4 函數(shù)式編程的七條基本公設(shè)24.3.4.1 “引用”公設(shè)24.3.4.2 “原子”公設(shè)24.3.4.3 “等值”公設(shè)24.3.4.4 “表頭”公設(shè)24.3.4.5 “余表”公設(shè)24.3.4.6 “和表”公設(shè)24.3.4.7 “條件”公設(shè)24.3.5 函數(shù)文法24.3.6 使用LispScript定義新函數(shù)24.3.7 一個(gè)驚喜--_eval24.3.8 其他的擴(kuò)展24.3.9 小結(jié)24.3.10 運(yùn)行環(huán)境和代碼容器——看看“新發(fā)明”的LispScript的實(shí)際表現(xiàn)24.4 總結(jié)第25章 執(zhí)行效率25.1 為什么要討論執(zhí)行效率25.1.1 來(lái)自客戶的抱怨--JavaScript能有多慢25.1.2 代碼慢下來(lái)是誰(shuí)的錯(cuò)25.2 封閉的代價(jià)25.2.1 過(guò)度封裝的性能問(wèn)題25.2.2 信息隱藏的利弊25.2.3 構(gòu)造對(duì)象的開(kāi)銷(xiāo)25.3 盒子里的流火25.3.1 DOM的內(nèi)存開(kāi)銷(xiāo)25.3.2 瀏覽器的內(nèi)存管理25.3.3 看清一個(gè)事實(shí)--內(nèi)存泄漏的存在25.3.4 注意--及時(shí)關(guān)閉你的“盒子”25.3.5 一些誤會(huì)的澄清25.3.5.1 腳本動(dòng)態(tài)創(chuàng)建DOM導(dǎo)致內(nèi)存泄漏25.3.5.2 閉包導(dǎo)致內(nèi)存泄漏25.4 動(dòng)態(tài)--魔鬼與天使25.4.1 動(dòng)態(tài)解析的性能分析--一個(gè)動(dòng)態(tài)特性的效率測(cè)試25.4.2 開(kāi)發(fā)效率與執(zhí)行效率--永遠(yuǎn)的困難選擇25.4.3 優(yōu)美與適用--學(xué)會(huì)經(jīng)受魔鬼的誘惑25.4.4 扮演客戶眼中的天使25.5 讓代碼輕舞飛揚(yáng)25.5.1 簡(jiǎn)單就是美--為代碼瘦身25.5.2 最完美的運(yùn)用是不用25.5.3 高度抽象是為了簡(jiǎn)化問(wèn)題25.5.4 邏輯和表達(dá)同樣重要25.5.5 保持代碼的嚴(yán)謹(jǐn)25.5.6 漂亮的書(shū)寫(xiě)風(fēng)格--讓閱讀者心情愉快25.6 總結(jié)第26章 應(yīng)用框架26.1 應(yīng)用框架概覽26.1.1 什么是應(yīng)用框架26.1.2 應(yīng)用框架的組成部分26.1.2.1 類(lèi)庫(kù)26.1.2.2 核心模塊26.1.2.3 環(huán)境配置26.1.2.4 使用手冊(cè)26.2 為什么要設(shè)計(jì)應(yīng)用框架26.2.1 應(yīng)用框架的適用范圍26.2.2 應(yīng)用框架的利弊26.3 如何設(shè)計(jì)應(yīng)用框架26.3.1 把握設(shè)計(jì)的目標(biāo)26.3.2 應(yīng)用框架的設(shè)計(jì)準(zhǔn)則26.3.3 什么樣的應(yīng)用框架才是成熟的應(yīng)用框架26.3.4 應(yīng)用框架的設(shè)計(jì)方法26.3.5 實(shí)戰(zhàn)!設(shè)計(jì)一個(gè)簡(jiǎn)單的應(yīng)用框架26.3.5.1 自描述26.3.5.2 基礎(chǔ)接口和語(yǔ)義型代碼26.3.5.3 核心對(duì)象的原型擴(kuò)展26.3.5.4 簡(jiǎn)單方法26.3.5.5 名字空間26.3.5.6 支持標(biāo)準(zhǔn)和跨瀏覽器26.3.5.7 事件模型--Silverna的事件模型26.3.5.8 應(yīng)用模式26.3.5.9 提供Ajax組件26.3.5.10 內(nèi)存管理和其他26.4 框架的實(shí)際應(yīng)用--在Silverna 2.0框架上開(kāi)發(fā)的Widgets26.5 已存在的應(yīng)用框架26.5.1 Prototype26.5.2 JQuery26.5.3 Dojo26.5.4 JSVM26.5.5 其他框架26.5.5.1 Bindows(成立于2003年)26.5.5.2 BackBase (成立于2003年)26.5.5.3 DOJO (開(kāi)發(fā)中,成立于2004年9月)26.5.5.4 Open Rico(開(kāi)發(fā)中,成立于2005年5月,基于早期的一個(gè)proprietary框架)26.5.5.5 qooxdoo (開(kāi)發(fā)中,成立于2005年5月)26.5.5.6 Tibet (開(kāi)發(fā)中,創(chuàng)建于2005年6月)26.5.5.7 AJFORM (創(chuàng)建于2005年6月)26.6 總結(jié)
章節(jié)摘錄
第一部分 概論 第1章 從零開(kāi)始 程序設(shè)計(jì)之道無(wú)遠(yuǎn)弗屆,御晨風(fēng)而返?!芨ト稹ふ材肥俊 ≡谌祟?lèi)漫漫的歷史長(zhǎng)河里,很難找到第二個(gè)由簡(jiǎn)單邏輯和抽象符號(hào)組合而成的,具有如此宏大信息量和豐富多彩內(nèi)涵的領(lǐng)域。從某種意義上說(shuō),當(dāng)你翻開(kāi)這本書(shū)的時(shí)候,你已經(jīng)踏入了一個(gè)任由你制定規(guī)則的未知世界。盡管你面對(duì)的僅僅是程序設(shè)計(jì)領(lǐng)域的冰山一角,但你將透過(guò)它,去領(lǐng)悟“道”的奧秘。在接下來(lái)的一段時(shí)間內(nèi),你會(huì)同我一起,掌握一種簡(jiǎn)單而優(yōu)雅的神秘語(yǔ)言,學(xué)會(huì)如何將你的意志作用于它。這種語(yǔ)言中所蘊(yùn)涵著的亙古之力,將為你開(kāi)啟通往神秘世界的大門(mén)…… 1.1 為什么選擇JavaScript? 在一些人眼里,程序設(shè)計(jì)是一件神秘而浪漫的藝術(shù)工作,對(duì)他們來(lái)說(shuō),一旦選定某種編程語(yǔ)言,就會(huì)像一個(gè)忠貞的信徒一樣堅(jiān)持用它來(lái)完成任何事情,然而我不是浪漫的藝匠,大多數(shù)人也都不是,很多時(shí)候我們學(xué)習(xí)一種新技術(shù)的唯一目的,只是為了把手中的事情做得更好。所以,。當(dāng)你面對(duì)一項(xiàng)陌生的技術(shù)時(shí),需要問(wèn)的第一個(gè)問(wèn)題往往是,我為什么選擇它,它對(duì)我來(lái)說(shuō),真的如我所想的那么重要嗎? 好,讓我們帶著問(wèn)題開(kāi)始?! ?.1.1 用戶的偏好——B/S模式 如果你堅(jiān)持站在專(zhuān)業(yè)人員的角度,你就很難理解為什么B/S模式會(huì)那么受歡迎。如果你是一個(gè)資深的程序員,有時(shí)候你甚至?xí)?duì)那些B/S模式的東西有一點(diǎn)點(diǎn)反感。因?yàn)樵谀憧磥?lái),瀏覽器、表單、DOM和其他一切與B/S沾邊的東西,大多是行為古怪而難以駕馭的。以你的經(jīng)驗(yàn),你會(huì)發(fā)現(xiàn)實(shí)現(xiàn)同樣的交互,用B/S來(lái)做通常會(huì)比用任何一種客戶端程序來(lái)做要困難得多?! ∪绻銍L試站在用戶的角度,你會(huì)發(fā)現(xiàn)為什么大多數(shù)最終用戶對(duì)B/S模式卻是如此的青睞。至少你不必去下載和安裝一個(gè)額外的程序到你的電腦上,不必為反復(fù)執(zhí)行安裝程序而困擾,不必整天被新的升級(jí)補(bǔ)丁打斷工作,不必理會(huì)注冊(cè)表、磁盤(pán)空間和一切對(duì)普通用戶來(lái)說(shuō)有點(diǎn)頭疼的概念。如果你的工作地點(diǎn)不是固定的辦公室,你日常工作的PC也不是固定的一臺(tái)或者兩臺(tái),那么,B/S的意義對(duì)你而言或許比想象的還要大。
媒體關(guān)注與評(píng)論
網(wǎng)友評(píng)論 emu:這是我多年來(lái)最期盼的一本JS的書(shū)。月影式的思考問(wèn)題的方式和角度,總是讓人耳目一新。 我首先想說(shuō)的是,作者不是個(gè)正常人來(lái)著。如果說(shuō)像我這樣的正常人看一個(gè)問(wèn)題,可以構(gòu)造出來(lái)一個(gè)數(shù)學(xué)模型,用一個(gè)函數(shù)來(lái)描述它fn(a,b,c,d...)={do sth.},在確定了n個(gè)參數(shù)后,問(wèn)題就可以解決;那么到了月影手里,這個(gè)問(wèn)題就變成了n維的問(wèn)題空間,在只確定了部分條件的時(shí)候,就可以把這個(gè)n維空間在一個(gè)n-m維空間上做一個(gè)投影,轉(zhuǎn)化為另一個(gè)問(wèn)題來(lái)看待(22.4節(jié)關(guān)于Currying的內(nèi)容,是我看過(guò)的最精彩的關(guān)于函數(shù)式編程的講解之一)?! ∫粋€(gè)腳本開(kāi)發(fā)的問(wèn)題,到了月影手里,也許實(shí)質(zhì)上是個(gè)濾波器的問(wèn)題(見(jiàn)本書(shū)第一章),也許和波粒二像性有關(guān)(看月影以前的博文),也許實(shí)質(zhì)上是受到測(cè)不準(zhǔn)原理的限制,也許和多維時(shí)空有密不可分的關(guān)系(都是某次和月影聊天時(shí)的話題),也許背后更有不可捉摸的“道”。月影看待問(wèn)題的目光,總是這樣穿透表象,深入實(shí)質(zhì),并升華了問(wèn)題本身,最后不但可以解決這一個(gè)問(wèn)題,還可以解決相關(guān)的一系列問(wèn)題,而且在解決問(wèn)題的過(guò)程中,我們可能已經(jīng)解決了一系列的問(wèn)題。這種月影式的風(fēng)格,讓我們每每擊案叫絕?! ∵@些年來(lái),在JavaScript和DOM上面基于對(duì)象和函數(shù)式編程,網(wǎng)友們有過(guò)無(wú)數(shù)的嘗試和探索。但是這樣的探索之路是如此艱難,限于精力和能力,我們往往只能在得到零星小小的突破后便折返。我們也一直期待有達(dá)人可以穿透那些荊棘后把沿途的這些風(fēng)景整理出來(lái)給后人分享,但是我們都知道這些風(fēng)景只要看一眼已經(jīng)是如此之難,要什么樣的人,才能攀下這么多的高峰,并把它們一一系統(tǒng)的整理出來(lái),呈現(xiàn)在大家面前? aoao:是不是看到書(shū)的文字過(guò)于華麗,是不是認(rèn)為這不是技術(shù)人員寫(xiě)的書(shū)?別急~華麗的語(yǔ)言并不與技術(shù)沖突,雖然很難想像得到有一本技術(shù)類(lèi)的書(shū)讀起來(lái)可以用舒服來(lái)形容,很不巧,剛好這本書(shū)就是。 是不是找不到有專(zhuān)門(mén)介紹IE或Firefox兼容的一章,是不是正想放棄這本書(shū)?別急~這不是一本只專(zhuān)注解決特定問(wèn)題的書(shū),而是一本讓您看到JavaScript真相的書(shū),當(dāng)你了解了事實(shí)的真相時(shí),問(wèn)題自然迎刃而解。 dh20156:許久不曾買(mǎi)書(shū),嗷嗷和月影的書(shū)是我至今為止最為期待的兩本! 月影的這本書(shū)從開(kāi)篇便用經(jīng)驗(yàn)及趣味的腳本來(lái)吸引讀者,加上引人入勝的描述方式,讓人心癢不止,不睹不快! 再談?wù)劚緯?shū)的設(shè)計(jì),理論知識(shí)由淺到深的推進(jìn),實(shí)戰(zhàn)則從最簡(jiǎn)單的應(yīng)用直到當(dāng)前最流行應(yīng)用的深入分析,更值得一提的是,作者無(wú)時(shí)無(wú)刻不在引導(dǎo)著讀者朝著一個(gè)真正的程序員的方向去看待問(wèn)題、思考問(wèn)題、解決問(wèn)題!可以說(shuō),本書(shū)是一本“老少皆宜”的JavaScript參考手冊(cè)!無(wú)論是新手還是已從事JavaScript工作多年的人,都可以從中獲得巨大的幫助! 希望本書(shū)能夠幫到更多的人,為Web開(kāi)發(fā)帶來(lái)更多新突破! winter:這是一本求“道”的書(shū)。市面上關(guān)于JavaScript的書(shū)極多,且不乏精品,然而多執(zhí)著于“術(shù)”。若講JavaScript的語(yǔ)法,ECMA262標(biāo)準(zhǔn)的文檔已經(jīng)足夠,若講JavaScript與DOM應(yīng)用,MSDN和W3C上的DOM參考也足夠?! avaScript是一門(mén)很有趣的語(yǔ)言,每取得一點(diǎn)更深入的理解,我便以為自己已經(jīng)徹悟。從最初的函數(shù)使用、面向?qū)ο蟆⒃屠^承、函數(shù)對(duì)象到后來(lái)作用域鏈、functional、預(yù)解析、表達(dá)式解析機(jī)制、動(dòng)態(tài)語(yǔ)言特性,每在此道路上前進(jìn)一步,我都曾以為自己到達(dá)了頂峰。然而,事實(shí)上是,簡(jiǎn)單的語(yǔ)法也能承載深刻的思想。巧妙的設(shè)計(jì)讓JavaScript成為一門(mén)兼有元類(lèi)(meta-class)、類(lèi)(class-based)、原型(prototype-based)三種面向?qū)ο筇匦院蚮unctional特性的動(dòng)態(tài)語(yǔ)言?;貞浧饋?lái),對(duì)這樣的語(yǔ)言,說(shuō)我已到達(dá)頂峰,是十分可笑的。 這本書(shū)雖然已經(jīng)詳細(xì)到足可以代替參考手冊(cè)來(lái)查閱,但是,它是一門(mén)講思想的書(shū)。她將以優(yōu)美的文字和同樣優(yōu)美的代碼向你展示JavaScript的獨(dú)特魅力。讀過(guò)這本書(shū),你不但能了解JavaScript,還會(huì)對(duì)整個(gè)編程的思想有一個(gè)新的認(rèn)識(shí),對(duì)于面向?qū)ο笳Z(yǔ)言、函數(shù)式語(yǔ)言、動(dòng)態(tài)語(yǔ)言有全新的理解?! 牧硪粋€(gè)角度說(shuō),思想也并非作者所追求的“道”的終極。透漏一下,除了項(xiàng)目經(jīng)理/資深程序員外,作者還有很多身份:論壇版主、文學(xué)愛(ài)好者(寫(xiě)的小說(shuō)挺不錯(cuò)、就是更新慢了點(diǎn))、理論物理愛(ài)好者(是的,你將會(huì)看到他經(jīng)常把程序跟理論物理聯(lián)系起來(lái))。讀過(guò)這本書(shū),你也許能理解作者所追求的“道”。 多說(shuō)無(wú)益,趕緊弄一本回家看吧。 leisang:正在看樣章,非常不錯(cuò)。前面的建議確實(shí)很有意義,一個(gè)JS初學(xué)者首先要學(xué)的不是如何炫耀各種網(wǎng)頁(yè)特技,而是限制自己的欲望,保證只在必要的地方使用?! ≡掠埃耗悄阌X(jué)得我寫(xiě)這本書(shū)是為什么?為名?為利?還是什么? 這本書(shū)的市場(chǎng)定位和讀者群又是什么? 我和出版社的關(guān)系是什么?出版社為什么讓我寫(xiě)這本書(shū)?他們對(duì)市場(chǎng)有過(guò)怎樣的研究?我作為簽約作者,又如何去對(duì)待這本書(shū),如何在這之間取舍?如何同時(shí)對(duì)出版社和讀者負(fù)責(zé)? 很多事情不是由我能夠決定的,而你呢,要理解他人的付出和他人的難處…… 你知道一本600頁(yè)的書(shū)一年時(shí)間完成需要多少付出嗎? 你知道被人期待而恨自己能力不能再高一點(diǎn)的那種感覺(jué)嗎? 你知道自己累死累活寫(xiě)出來(lái)的書(shū),本以為能夠虛心接受心平氣和的指點(diǎn)和批評(píng)的時(shí)候突然受到劈頭蓋臉的一通亂棒時(shí)的那種感覺(jué)嗎? 不是我接受不了尖銳的批評(píng),而是我希望評(píng)論時(shí)能夠稍微體諒一下我這個(gè)作者,平和地告訴我哪里不好,哪里要修改……而不是一上來(lái)就說(shuō)我這本書(shū)是沒(méi)有價(jià)值的…… 你的技術(shù)和知識(shí)面我還是比較認(rèn)可的,你的批評(píng)我也虛心接受,但你前面的一些過(guò)于尖銳的言辭我接受不了,抱歉了~ ?。ú邉澗庉孅c(diǎn)評(píng):上面這段話是作者對(duì)一個(gè)在論壇上以極不友好的言詞和視角攻擊他的書(shū)的網(wǎng)友的回復(fù),之所以把這段話放在這里,是因?yàn)閺倪@段話中可以感受到作者對(duì)自己作品傾注的感情。令我感動(dòng)的是這句話——“你知道被人期待而恨自己能力不能再高一點(diǎn)的那種感覺(jué)嗎?”) redcarpet:作者乃我的圍棋師傅,我相信他的文章就如他教的圍棋一樣,讓JS的學(xué)習(xí)者能進(jìn)入神奇的JS之門(mén)?! ∠M鸍S迷們,能接近那傳說(shuō)中的“神之一技”的境界?! €(gè)人覺(jué)得最有看點(diǎn)的部分:第五部分 第二十二章 看點(diǎn):閉包與函數(shù)式編程?! ∵€有一點(diǎn)小小建議: 新學(xué)JS的朋友,可以試著按如下順序看:第一部分 第三章 開(kāi)發(fā)環(huán)境和調(diào)試方法,第二部分 全部,第三、四部分,第五部分 最后看?! 偨佑|任何一門(mén)語(yǔ)言,碰到的問(wèn)題就是編輯環(huán)境了,好多初學(xué)者自己摸索的話,會(huì)走不少的彎路。JS也不例外,先了解開(kāi)發(fā)環(huán)境和調(diào)試方法,磨刀不誤砍柴功?! 倢W(xué)JS,不要立刻陷入具體使用環(huán)境中的問(wèn)題,先把語(yǔ)言的核心、思想學(xué)好了,再看客戶端、服務(wù)端上的JS。第二部分學(xué)透了,就會(huì)為后續(xù)的章節(jié)打下了比較好的基礎(chǔ)?! oocoo:強(qiáng)烈支持一下,久聞月影大俠的名字,出書(shū)了我一定會(huì)買(mǎi)一本,光看目錄就夠吸引我了! greatghoul:這位兄臺(tái)可就不對(duì)了,入門(mén)書(shū)是很多,但真正優(yōu)秀的不是很多,現(xiàn)在比的就是誰(shuí)的書(shū)能讓讀者更容易的入門(mén),講得那么專(zhuān)業(yè),小孩子嚇都嚇?biāo)懒?,還入門(mén)個(gè)pp呀?! ≡掳嬖谡搲锩曇菜悴恍。鉀Q的問(wèn)題也算不少,而且還有大公無(wú)私的精神(上面有所提及),大家都喜歡他(她)的生動(dòng)的語(yǔ)言,讀他(她)的書(shū)就好像在論壇里面和他(她)交流一樣,在這樣具有親和力的環(huán)境中入門(mén),是非常享受的?! ∵@位兄臺(tái)或許書(shū)讀的很多,但對(duì)入門(mén)書(shū)籍方面只是想當(dāng)然,不是書(shū)寫(xiě)得專(zhuān)業(yè)就行,像《Thinking in Java》就寫(xiě)得很有親和力,但依然受很多所謂專(zhuān)業(yè)人士的抨擊,然而讀者喜歡。月版要致力于寫(xiě)類(lèi)似于Thinking in JavaScript的東西呀。 秦皇也愛(ài)JS:說(shuō)實(shí)話,這本書(shū)非常好看,月影的寫(xiě)作水平和文字功底是非常之高啊。像《JavaScript權(quán)威指南》,有時(shí)候看著看著就看不下去了,但這本書(shū)的樣章卻讓我看得興致盎然,不忍釋卷。里面竟然還穿插了我喜歡的《明朝那些事兒》的句子,呵呵,真是奇峰迭起。比起呆板嚴(yán)肅的譯版,我還是更喜歡這本。頂! 編程浪子:一本有思想的書(shū),其價(jià)值已超出內(nèi)容本身,以前那些JS的書(shū)看著就乏味,教條式太嚴(yán)重?! ∵€沒(méi)看到書(shū),不敢把作者評(píng)得那么好,不過(guò)我相信月影的實(shí)力,樣章就寫(xiě)得不錯(cuò),可謂“得道中人”呀。 xpnew:月影老大出書(shū)了,我們一定要支持!確實(shí)很感動(dòng)啊?! yhome:不適合你讀,但很適合我讀!沒(méi)人要你讀,綜合你的一些言論和表現(xiàn),得出的結(jié)論是你沒(méi)資格讀這書(shū),因?yàn)槟愀揪筒欢髡邔?xiě)的是什么! (策劃編輯點(diǎn)評(píng):在論壇上以極不友好的言詞和視角攻擊作者所寫(xiě)的這本書(shū)的那個(gè)網(wǎng)友的言詞,激起了其他很多網(wǎng)友的反感,這是其中一個(gè)網(wǎng)友對(duì)那位攻擊者的回復(fù)。) 果蠅:其實(shí)我更希望月影把書(shū)寫(xiě)成小說(shuō)或散文的形式,有什么不可以的呢!我們需要的是生動(dòng)有趣的語(yǔ)言和奇思妙想,也許不是很技術(shù),但可以給讀者以遐想、啟發(fā),可以開(kāi)闊我們的思路,我想如果書(shū)能達(dá)到這個(gè)目的,那就是一本難得的好書(shū)了。 我想這也是無(wú)憂能如此吸引人的原因。 看過(guò)月版的一些帖子,對(duì)月版的書(shū)有更多的期待?! ∫字刑煸炎约旱奈恼陆o出版社看,主編退稿說(shuō)你這個(gè)是散文,不是學(xué)術(shù)著作?! ∈聦?shí)證明學(xué)術(shù)這些東西不只是在高高的象牙塔尖上,也證明一些人腦筋確實(shí)死得很,不必太在意?! ≡掠皯?yīng)該感到榮幸有這么多的關(guān)注,不管是好是壞,都是支持?! olidluck:你就放肆的寫(xiě)吧,讓我們也放肆的看?! ≌娌宦斆鳎簜€(gè)人覺(jué)得好書(shū)在于對(duì)基礎(chǔ)講解的深刻,而不是用最新的技術(shù)來(lái)引誘你?! uchaofeng:在哪兒有買(mǎi)的,期待中…… monfs:快出呀,等不急了,這是一個(gè)歷史時(shí)刻! fuhao19830308:這書(shū)要出了可得通知一聲,看了樣章就有了看下去的欲望了! LeoZ:我也每天上來(lái)看一下是否有出版,可是每次都沒(méi)消息,我也繼續(xù)等?! amon127:什么時(shí)候出版啊,等了好久了:) ansonvili:什么時(shí)候出啊,等不急了?! reeren:看了樣章,很貼切,很易理解,期待書(shū)的發(fā)行! ravioli:每天以淚洗面的等啊等。 fchnipj:等的好辛苦,月版主能說(shuō)說(shuō)具體的時(shí)間嗎?好想看呀?! 。ú邉澗庉孅c(diǎn)評(píng):本來(lái)我希望這本書(shū)在2008年的春節(jié)后就能出版,而實(shí)際上卻由于種種原因一直拖到了6月份這本書(shū)才面世。說(shuō)聲抱歉,讀者們,讓你們久等了。)
編輯推薦
腳本神力與你同在 無(wú)憂版主月影力作?! 禞avaScript王者歸來(lái)》是一本尋求JavaScript解決之道的書(shū)?! 禞avaScript王者歸來(lái)》是一本探尋程序設(shè)計(jì)思想本源的“魔法典籍” ?! 暮?jiǎn)單的語(yǔ)言基礎(chǔ)到豐富的實(shí)際應(yīng)用再到語(yǔ)言本質(zhì)的深入剖析?! ∽掷镄虚g包含作者對(duì)JavaScript實(shí)踐乃至程序設(shè)計(jì)思想的深入思考和總結(jié) 腳本攻擊就在黎明發(fā)起。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版