出版時(shí)間:2008-3 出版社:電子工業(yè)出版社 作者:周愛(ài)民 頁(yè)數(shù):510
Tag標(biāo)簽:無(wú)
內(nèi)容概要
本書(shū)詳細(xì)講述JavaScript作為一種混合式語(yǔ)言的各方面特性,包括過(guò)程式、面向?qū)ο?、函?shù)式和動(dòng)態(tài)語(yǔ)言特性等,在動(dòng)態(tài)函數(shù)式語(yǔ)言特性方面有著尤為細(xì)致的講述。本書(shū)的主要努力之一,就是分解出這些語(yǔ)言原子,并重現(xiàn)將它們混合在一起的過(guò)程與方法。通過(guò)從復(fù)雜性到單一語(yǔ)言特性的還原過(guò)程,讀者可了解到語(yǔ)言的本質(zhì),以及“層出不窮的語(yǔ)言特性”背后的真相。 本書(shū)主要的著述目的是基于一種形式上簡(jiǎn)單的語(yǔ)言來(lái)講述“語(yǔ)言的本質(zhì)及其應(yīng)用”。本書(shū)詳細(xì)講述了通過(guò)框架執(zhí)行過(guò)程來(lái)構(gòu)造一個(gè)JavaScript擴(kuò)展框架的方法,并完整地講述了框架擴(kuò)展中各種設(shè)計(jì)取舍,因此可以作為學(xué)習(xí)研究計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言時(shí)的參考,用以展示現(xiàn)實(shí)系統(tǒng)如何實(shí)現(xiàn)經(jīng)典理論中的各種編程范型。
作者簡(jiǎn)介
周愛(ài)民,國(guó)內(nèi)軟件開(kāi)發(fā)界資深軟件工程師,從1996年開(kāi)始涉足商業(yè)軟件開(kāi)發(fā),歷任部門經(jīng)理、區(qū)域總經(jīng)理、高級(jí)軟件工程師、平臺(tái)架構(gòu)師等職。周愛(ài)民先生在軟件開(kāi)發(fā)、軟件工程、團(tuán)隊(duì)建設(shè)以及部門管理方面經(jīng)驗(yàn)豐富,是Borland Delphi產(chǎn)品技術(shù)專家,也是Qomo開(kāi)源項(xiàng)目(JavaScript)的發(fā)起者。在JavaScript開(kāi)發(fā)方面,有超過(guò)9年的實(shí)踐經(jīng)驗(yàn)。
2003年5月,被美國(guó)Borland公司授予“Borland Delphi產(chǎn)品專家”稱號(hào),并授予“論壇特別貢獻(xiàn)獎(jiǎng)”。
2004年8月,出版軟件開(kāi)發(fā)專著《Delphi源代碼分析》,被業(yè)界譽(yù)為“Delphi領(lǐng)域精品著作”。
2005年12月,發(fā)起JavaScript開(kāi)源項(xiàng)目Qomolangma(Qomo),研究語(yǔ)言特性、框架設(shè)計(jì)與企業(yè)級(jí)應(yīng)用庫(kù)。
2007年4月,出版軟件工程專著《大道至簡(jiǎn)——軟件工程實(shí)踐者的思想》,被譽(yù)為“激蕩新思的佳作”。
2007年11月,參加CSDN主辦的軟件開(kāi)發(fā)大會(huì)(SD2C),主講“JavaScript引擎技術(shù)”。
書(shū)籍目錄
第1部分 語(yǔ)言基礎(chǔ) 第1章 十年JAVASCRIPT 1.1 網(wǎng)頁(yè)中的代碼 1.1.1 新鮮的玩意兒 1.1.2 第一段在網(wǎng)頁(yè)中的代碼 1.1.3 最初的價(jià)值 1.2 用JAVASCRIPT來(lái)寫(xiě)瀏覽器上的應(yīng)用 1.2.1 我要做一個(gè)聊天室 1.2.2 Flash的一席之地 1.2.3 RWC與RIA之爭(zhēng) 1.3 沒(méi)有框架與庫(kù)的語(yǔ)言能怎樣發(fā)展呢? 1.3.1 做一個(gè)框架 1.3.2 重寫(xiě)框架的語(yǔ)言層 1.3.3 富瀏覽器端開(kāi)發(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的語(yǔ)法 2.1 語(yǔ)法綜述 2.1.1 標(biāo)識(shí)符所綁定的語(yǔ)義 2.1.2 識(shí)別語(yǔ)法錯(cuò)誤與運(yùn)行錯(cuò)誤 2.2 JAVASCRIPT的語(yǔ)法:變量聲明 2.2.1 變量的數(shù)據(jù)類型 2.2.2 變量聲明 2.2.3 變量聲明中的一般性問(wèn)題 2.3 JAVASCRIPT的語(yǔ)法:表達(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的語(yǔ)法:語(yǔ)句 2.4.1 表達(dá)式語(yǔ)句 2.4.2 分支語(yǔ)句 2.4.3 循環(huán)語(yǔ)句 2.4.4 流程控制:一般子句 2.4.5 流程控制:異常 2.5 面向?qū)ο缶幊痰恼Z(yǔ)法概要 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ǔ)言特性及基本應(yīng)用 第3章 JAVASCRIPT的非函數(shù)式語(yǔ)言特性 3.1 概述 3.1.1 命令式語(yǔ)言與結(jié)構(gòu)化編程 3.1.2 結(jié)構(gòu)化的疑難 3.1.3 “面向?qū)ο笳Z(yǔ)言”是突破嗎? 3.1.4 更高層次的抽象:接口 3.1.5 再論語(yǔ)言的分類 3.1.6 JavaScript的語(yǔ)源 3.2 基本語(yǔ)法的結(jié)構(gòu)化含義 3.2.1 基本邏輯與代碼分塊 3.2.2 模塊化的層次:語(yǔ)法作用域 3.2.3 執(zhí)行流程及其變更 3.2.4 模塊化的效果:變量作用域 3.2.5 語(yǔ)句的副作用 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ù)制?寫(xiě)時(shí)復(fù)制?還是讀遍歷? 3.3.5 構(gòu)造過(guò)程:從函數(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 類抄寫(xiě)?或原型繼承? 3.4.5 JavaScript中的對(duì)象(構(gòu)造器) 3.4.6 不能通過(guò)繼承得到的效果 第4章 JAVASCRIPT的函數(shù)式語(yǔ)言特性 4.1 概述 4.1.1 從代碼風(fēng)格說(shuō)起 4.1.2 為什么常見(jiàn)的語(yǔ)言不贊同連續(xù)求值 4.1.3 函數(shù)式語(yǔ)言的淵源 4.2 函數(shù)式語(yǔ)言中的函數(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ù)外無(wú)副作用 4.3 從運(yùn)算式語(yǔ)言到函數(shù)式語(yǔ)言 4.3.1 JavaScript中的幾種連續(xù)運(yùn)算 4.3.2 運(yùn)算式語(yǔ)言 4.3.3 如何消滅掉語(yǔ)句 4.4 函數(shù):對(duì)運(yùn)算式語(yǔ)言的補(bǔ)充和組織 4.4.1 函數(shù)是必要的補(bǔ)充 4.4.2 函數(shù)是代碼的組織形式 4.4.3 重新認(rèn)識(shí)“函數(shù)” 4.4.4 JavaScript語(yǔ)言中的函數(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 語(yǔ)句或語(yǔ)句塊中的閉包問(wèn)題 4.6.7 閉包中的標(biāo)識(shí)符(變量)特例 4.6.8 函數(shù)對(duì)象的閉包及其效果 4.6.9 閉包與可見(jiàn)性 第5章 JAVASCRIPT的動(dòng)態(tài)語(yǔ)言特性 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í)行過(guò)程中的語(yǔ)句、表達(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 棧的可見(jiàn)與修改 5.3.4 兼容性:低版本中的call()與apply() 5.4 重寫(xiě) 5.4.1 原型重寫(xiě) 5.4.2 構(gòu)造器重寫(xiě) 5.4.3 對(duì)象成員的重寫(xiě) 5.4.4 宿主對(duì)重寫(xiě)的限制 5.4.5 引擎對(duì)重寫(xiě)的限制 5.5 包裝類:面向?qū)ο蟮耐讌f(xié) 5.5.1 顯式包裝元數(shù)據(jù) 5.5.2 隱式包裝的過(guò)程與檢測(cè)方法 5.5.3 包裝值類型數(shù)據(jù)的必要性與問(wèn)題 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類繼承的語(yǔ)法 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)的基本特性與語(yǔ)法 6.3.2 多投事件系統(tǒng)的實(shí)現(xiàn) 6.3.3 多投事件的中斷與返回值 6.3.4 多投事件系統(tǒng)的安全性 6.4 接口系統(tǒng) 6.4.1 基本概念與語(yǔ)法 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 基本概念與語(yǔ)法 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ù)式語(yǔ)言技巧 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ì)象的值含義來(lái)構(gòu)造復(fù)雜對(duì)象 7.8 控制字符串替換過(guò)程的基本模式 7.9 實(shí)現(xiàn)二叉樹(shù) 7.10 將函數(shù)封裝為方法 7.11 使用WITH語(yǔ)句來(lái)替代函數(shù)參數(shù)傳遞 7.12 使用對(duì)象閉包來(lái)重置重寫(xiě) 7.13 構(gòu)造函數(shù)參數(shù) 7.14 使用更復(fù)雜的表達(dá)式來(lái)消減IF語(yǔ)句 7.15 利用鉤子函數(shù)來(lái)擴(kuò)展功能 7.16 安全的字符串 附錄A:術(shù)語(yǔ)表 附錄B:主要引擎的特性差異列表 附錄C:附圖 附錄D:參考書(shū)目
章節(jié)摘錄
插圖:
媒體關(guān)注與評(píng)論
“這是一本閃爍著思考光芒的作品,它的精彩就在于作者深入的思考?!薄 Y濤 “停下來(lái),思考才是進(jìn)步的本質(zhì)?!薄 罹S “傳達(dá)了探究工程本質(zhì)的獨(dú)立思考精神。” ——譚群釗
編輯推薦
《JAVASCRIPT語(yǔ)言精髓與編程實(shí)踐》適合于有編程經(jīng)驗(yàn)的、想學(xué)習(xí)和掌握J(rèn)avaScript的語(yǔ)言實(shí)現(xiàn)與擴(kuò)展知識(shí)的開(kāi)發(fā)者 。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
JAVASCRIPT語(yǔ)言精髓與編程實(shí)踐 PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版