出版時(shí)間:2008-3 出版社:電子工業(yè)出版社 作者:周愛民 頁數(shù):510
Tag標(biāo)簽:無
內(nèi)容概要
本書詳細(xì)講述JavaScript作為一種混合式語言的各方面特性,包括過程式、面向?qū)ο?、函?shù)式和動(dòng)態(tài)語言特性等,在動(dòng)態(tài)函數(shù)式語言特性方面有著尤為細(xì)致的講述。本書的主要努力之一,就是分解出這些語言原子,并重現(xiàn)將它們混合在一起的過程與方法。通過從復(fù)雜性到單一語言特性的還原過程,讀者可了解到語言的本質(zhì),以及“層出不窮的語言特性”背后的真相?! ”緯饕闹瞿康氖腔谝环N形式上簡(jiǎn)單的語言來講述“語言的本質(zhì)及其應(yīng)用”。本書詳細(xì)講述了通過框架執(zhí)行過程來構(gòu)造一個(gè)JavaScript擴(kuò)展框架的方法,并完整地講述了框架擴(kuò)展中各種設(shè)計(jì)取舍,因此可以作為學(xué)習(xí)研究計(jì)算機(jī)程序設(shè)計(jì)語言時(shí)的參考,用以展示現(xiàn)實(shí)系統(tǒng)如何實(shí)現(xiàn)經(jīng)典理論中的各種編程范型。
作者簡(jiǎn)介
周愛民,國(guó)內(nèi)軟件開發(fā)界資深軟件工程師,從1996年開始涉足商業(yè)軟件開發(fā),歷任部門經(jīng)理、區(qū)域總經(jīng)理、高級(jí)軟件工程師、平臺(tái)架構(gòu)師等職。周愛民先生在軟件開發(fā)、軟件工程、團(tuán)隊(duì)建設(shè)以及部門管理方面經(jīng)驗(yàn)豐富,是Borland Delphi產(chǎn)品技術(shù)專家,也是Qomo開源項(xiàng)目(JavaScript)的發(fā)起者。在JavaScript開發(fā)方面,有超過9年的實(shí)踐經(jīng)驗(yàn)。
2003年5月,被美國(guó)Borland公司授予“Borland Delphi產(chǎn)品專家”稱號(hào),并授予“論壇特別貢獻(xiàn)獎(jiǎng)”。
2004年8月,出版軟件開發(fā)專著《Delphi源代碼分析》,被業(yè)界譽(yù)為“Delphi領(lǐng)域精品著作”。
2005年12月,發(fā)起JavaScript開源項(xiàng)目Qomolangma(Qomo),研究語言特性、框架設(shè)計(jì)與企業(yè)級(jí)應(yīng)用庫。
2007年4月,出版軟件工程專著《大道至簡(jiǎn)——軟件工程實(shí)踐者的思想》,被譽(yù)為“激蕩新思的佳作”。
2007年11月,參加CSDN主辦的軟件開發(fā)大會(huì)(SD2C),主講“JavaScript引擎技術(shù)”。
書籍目錄
第1部分 語言基礎(chǔ) 第1章 十年JAVASCRIPT 1.1 網(wǎng)頁中的代碼 1.1.1 新鮮的玩意兒 1.1.2 第一段在網(wǎng)頁中的代碼 1.1.3 最初的價(jià)值 1.2 用JAVASCRIPT來寫瀏覽器上的應(yīng)用 1.2.1 我要做一個(gè)聊天室 1.2.2 Flash的一席之地 1.2.3 RWC與RIA之爭(zhēng) 1.3 沒有框架與庫的語言能怎樣發(fā)展呢? 1.3.1 做一個(gè)框架 1.3.2 重寫框架的語言層 1.3.3 富瀏覽器端開發(fā)(RWC)與AJAX 1.4 為JAVASCRIPT正名 1.4.1 JavaScript 1.4.2 Core JavaScript 1.4.3 SpiderMonkey JavaScript 1.4.4 ECMAScript 1.4.5 JScript 1.4.6 總述 1.5 JAVASCRIPT的應(yīng)用環(huán)境 1.5.1 宿主環(huán)境(host environment) 1.5.2 外殼程序(Shell) 1.5.3 運(yùn)行期環(huán)境(runtime) 第2章 JAVASCRIPT的語法 2.1 語法綜述 2.1.1 標(biāo)識(shí)符所綁定的語義 2.1.2 識(shí)別語法錯(cuò)誤與運(yùn)行錯(cuò)誤 2.2 JAVASCRIPT的語法:變量聲明 2.2.1 變量的數(shù)據(jù)類型 2.2.2 變量聲明 2.2.3 變量聲明中的一般性問題 2.3 JAVASCRIPT的語法:表達(dá)式運(yùn)算 2.3.1 一般表達(dá)式運(yùn)算 2.3.2 邏輯運(yùn)算 2.3.3 字符串運(yùn)算 2.3.4 比較運(yùn)算 2.3.5 賦值運(yùn)算 2.3.6 函數(shù)調(diào)用 2.3.7 特殊作用的運(yùn)算符 2.3.8 運(yùn)算優(yōu)先級(jí) 2.4 JAVASCRIPT的語法:語句 2.4.1 表達(dá)式語句 2.4.2 分支語句 2.4.3 循環(huán)語句 2.4.4 流程控制:一般子句 2.4.5 流程控制:異常 2.5 面向?qū)ο缶幊痰恼Z法概要 2.5.1 對(duì)象直接量聲明與實(shí)例創(chuàng)建 2.5.2 對(duì)象成員列舉、存取和刪除 2.5.3 屬性存取與方法調(diào)用 2.5.4 對(duì)象及其成員的檢查 2.5.5 可列舉性 2.5.6 默認(rèn)對(duì)象的指定 2.6 運(yùn)算符的二義性 2.6.1 加號(hào)“+”的二義性 2.6.2 括號(hào)“( )”的二義性 2.6.3 冒號(hào)“:”與標(biāo)簽的二義性 2.6.4 大括號(hào)“{ }”的二義性 2.6.5 逗號(hào)“,”的二義性 2.6.6 方括號(hào)“[ ]”的二義性 第2部分 語言特性及基本應(yīng)用 第3章 JAVASCRIPT的非函數(shù)式語言特性 3.1 概述 3.1.1 命令式語言與結(jié)構(gòu)化編程 3.1.2 結(jié)構(gòu)化的疑難 3.1.3 “面向?qū)ο笳Z言”是突破嗎? 3.1.4 更高層次的抽象:接口 3.1.5 再論語言的分類 3.1.6 JavaScript的語源 3.2 基本語法的結(jié)構(gòu)化含義 3.2.1 基本邏輯與代碼分塊 3.2.2 模塊化的層次:語法作用域 3.2.3 執(zhí)行流程及其變更 3.2.4 模塊化的效果:變量作用域 3.2.5 語句的副作用 3.3 JAVASCRIPT中的原型繼承 3.3.1 空對(duì)象(null)與空的對(duì)象 3.3.2 原型繼承的基本性質(zhì) 3.3.3 空的對(duì)象是所有對(duì)象的基礎(chǔ) 3.3.4 構(gòu)造復(fù)制?寫時(shí)復(fù)制?還是讀遍歷? 3.3.5 構(gòu)造過程:從函數(shù)到構(gòu)造器 3.3.6 預(yù)定義屬性與方法 3.3.7 原型鏈的維護(hù) 3.3.8 原型繼承的實(shí)質(zhì) 3.4 JAVASCRIPT的對(duì)象系統(tǒng) 3.4.1 封裝 3.4.2 多態(tài) 3.4.3 事件 3.4.4 類抄寫?或原型繼承? 3.4.5 JavaScript中的對(duì)象(構(gòu)造器) 3.4.6 不能通過繼承得到的效果 第4章 JAVASCRIPT的函數(shù)式語言特性 4.1 概述 4.1.1 從代碼風(fēng)格說起 4.1.2 為什么常見的語言不贊同連續(xù)求值 4.1.3 函數(shù)式語言的淵源 4.2 函數(shù)式語言中的函數(shù) 4.2.1 函數(shù)是運(yùn)算元 4.2.2 在函數(shù)內(nèi)保存數(shù)據(jù) 4.2.3 函數(shù)內(nèi)的運(yùn)算對(duì)函數(shù)外無副作用 4.3 從運(yùn)算式語言到函數(shù)式語言 4.3.1 JavaScript中的幾種連續(xù)運(yùn)算 4.3.2 運(yùn)算式語言 4.3.3 如何消滅掉語句 4.4 函數(shù):對(duì)運(yùn)算式語言的補(bǔ)充和組織 4.4.1 函數(shù)是必要的補(bǔ)充 4.4.2 函數(shù)是代碼的組織形式 4.4.3 重新認(rèn)識(shí)“函數(shù)” 4.4.4 JavaScript語言中的函數(shù)式編程 4.5 JAVASCRIPT中的函數(shù) 4.5.1 可變參數(shù)與值參數(shù)傳遞 4.5.2 非惰性求值 4.5.3 函數(shù)是第一型 4.5.4 函數(shù)是一個(gè)值 4.5.5 可遍歷的調(diào)用棧 4.6 閉包 4.6.1 什么是閉包 4.6.2 什么是函數(shù)實(shí)例與函數(shù)引用 4.6.3 (在被調(diào)用時(shí),)每個(gè)函數(shù)實(shí)例至少擁有一個(gè)閉包 4.6.4 函數(shù)閉包與調(diào)用對(duì)象 4.6.5 函數(shù)實(shí)例擁有多個(gè)閉包的情況 4.6.6 語句或語句塊中的閉包問題 4.6.7 閉包中的標(biāo)識(shí)符(變量)特例 4.6.8 函數(shù)對(duì)象的閉包及其效果 4.6.9 閉包與可見性 第5章 JAVASCRIPT的動(dòng)態(tài)語言特性 5.1 概述 5.1.1 動(dòng)態(tài)數(shù)據(jù)類型的起源 5.1.2 動(dòng)態(tài)執(zhí)行系統(tǒng)的起源 5.1.3 腳本系統(tǒng)的起源 5.1.4 腳本只是一種表面的表現(xiàn)形式 5.2 動(dòng)態(tài)執(zhí)行(EVAL) 5.2.1 動(dòng)態(tài)執(zhí)行與閉包 5.2.2 動(dòng)態(tài)執(zhí)行過程中的語句、表達(dá)式與值 5.2.3 奇特的、甚至是負(fù)面的影響 5.3 動(dòng)態(tài)方法調(diào)用(CALL與APPLY) 5.3.1 動(dòng)態(tài)方法調(diào)用中指定this對(duì)象 5.3.2 丟失的this引用 5.3.3 棧的可見與修改 5.3.4 兼容性:低版本中的call()與apply() 5.4 重寫 5.4.1 原型重寫 5.4.2 構(gòu)造器重寫 5.4.3 對(duì)象成員的重寫 5.4.4 宿主對(duì)重寫的限制 5.4.5 引擎對(duì)重寫的限制 5.5 包裝類:面向?qū)ο蟮耐讌f(xié) 5.5.1 顯式包裝元數(shù)據(jù) 5.5.2 隱式包裝的過程與檢測(cè)方法 5.5.3 包裝值類型數(shù)據(jù)的必要性與問題 5.5.4 其他直接量與相應(yīng)的構(gòu)造器 5.6 關(guān)聯(lián)數(shù)組:對(duì)象與數(shù)組的動(dòng)態(tài)特性 5.6.1 關(guān)聯(lián)數(shù)組是對(duì)象系統(tǒng)的基礎(chǔ) 5.6.2 用關(guān)聯(lián)數(shù)組實(shí)現(xiàn)的索引數(shù)組 5.6.3 干凈的對(duì)象 5.7 類型轉(zhuǎn)換 5.7.1 宿主環(huán)境下的特殊類型系統(tǒng) 5.7.2 值運(yùn)算:類型轉(zhuǎn)換的基礎(chǔ) 5.7.3 隱式轉(zhuǎn)換 5.7.4 值類型之間的轉(zhuǎn)換 5.7.5 從引用到值:深入探究valueOf()方法 5.7.6 到字符串類型的顯式轉(zhuǎn)換 第3部分 編程實(shí)踐 第6章 QOMO框架的核心技術(shù)與實(shí)現(xiàn) 6.1 QOMO框架的技術(shù)發(fā)展與基本特性 6.1.1 Qomo框架的技術(shù)發(fā)展 6.1.2 Qomo的體系結(jié)構(gòu) 6.1.3 Qomo框架設(shè)計(jì)的基本原則 6.2 基于類繼承的對(duì)象系統(tǒng) 6.2.1 Qomo類繼承的基本特性 6.2.2 Qomo類繼承的語法 6.2.3 Qomo類繼承系統(tǒng)的實(shí)現(xiàn) 6.2.4 Qomo類繼承系統(tǒng)的高級(jí)話題 6.3 多投事件系統(tǒng) 6.3.1 多投事件系統(tǒng)的基本特性與語法 6.3.2 多投事件系統(tǒng)的實(shí)現(xiàn) 6.3.3 多投事件的中斷與返回值 6.3.4 多投事件系統(tǒng)的安全性 6.4 接口系統(tǒng) 6.4.1 基本概念與語法 6.4.2 接口實(shí)現(xiàn) 6.4.3 Qomo接口系統(tǒng)的高級(jí)話題 6.4.4 接口委托 6.4.5 Qomo接口系統(tǒng)的實(shí)現(xiàn) 6.5 命名空間 6.5.1 Qomo命名空間的復(fù)雜性 6.5.2 命名空間的使用 6.5.3 命名空間的實(shí)現(xiàn) 6.6 AOP 6.6.1 基本概念與語法 6.6.2 高級(jí)切面特性 6.6.3 Qomo中切面系統(tǒng)的實(shí)現(xiàn) 6.7 其他 6.7.1 裝載、內(nèi)聯(lián)與導(dǎo)入 6.7.2 四種模板技術(shù) 6.7.3 出錯(cuò)處理 6.7.4 其他功能模塊 第7章 一般性的動(dòng)態(tài)函數(shù)式語言技巧 7.1 消除代碼的全局變量名占用 7.2 一次性的構(gòu)造器 7.3 對(duì)象充當(dāng)識(shí)別器 7.4 識(shí)別NEW運(yùn)算進(jìn)行的構(gòu)造器調(diào)用 7.5 使用直接量及其包裝類快速調(diào)用對(duì)象方法 7.6 三天前是星期幾? 7.7 使用對(duì)象的值含義來構(gòu)造復(fù)雜對(duì)象 7.8 控制字符串替換過程的基本模式 7.9 實(shí)現(xiàn)二叉樹 7.10 將函數(shù)封裝為方法 7.11 使用WITH語句來替代函數(shù)參數(shù)傳遞 7.12 使用對(duì)象閉包來重置重寫 7.13 構(gòu)造函數(shù)參數(shù) 7.14 使用更復(fù)雜的表達(dá)式來消減IF語句 7.15 利用鉤子函數(shù)來擴(kuò)展功能 7.16 安全的字符串 附錄A:術(shù)語表 附錄B:主要引擎的特性差異列表 附錄C:附圖 附錄D:參考書目
章節(jié)摘錄
插圖:
媒體關(guān)注與評(píng)論
“這是一本閃爍著思考光芒的作品,它的精彩就在于作者深入的思考。” ——蔣濤 “停下來,思考才是進(jìn)步的本質(zhì)?!薄 罹S “傳達(dá)了探究工程本質(zhì)的獨(dú)立思考精神?!薄 T群釗
編輯推薦
《JAVASCRIPT語言精髓與編程實(shí)踐》適合于有編程經(jīng)驗(yàn)的、想學(xué)習(xí)和掌握J(rèn)avaScript的語言實(shí)現(xiàn)與擴(kuò)展知識(shí)的開發(fā)者 。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
JAVASCRIPT語言精髓與編程實(shí)踐 PDF格式下載