出版時(shí)間:2012-3 出版社:電子工業(yè)出版社 作者:周愛民 頁(yè)數(shù):456
Tag標(biāo)簽:無
內(nèi)容概要
本書詳細(xì)講述JavaScript
作為一種混合式語(yǔ)言的各方面特性,包括過程式、面向?qū)ο?、函?shù)式和動(dòng)態(tài)語(yǔ)言特性等,在動(dòng)態(tài)函數(shù)式語(yǔ)言特性方面有著尤為細(xì)致的講述。本書的主要努力之一,就是分解出這些語(yǔ)言原子,并重現(xiàn)將它們混合在一起的過程與方法。通過從復(fù)雜性到單一語(yǔ)言特性的還原過程,讀者可了解到語(yǔ)言的本質(zhì),以及“層出不窮的語(yǔ)言特性”背后的真相。
本書主要的著述目的是基于一種形式上簡(jiǎn)單的語(yǔ)言來講述“語(yǔ)言的本質(zhì)及其應(yīng)用”。本書詳細(xì)講述了通過框架執(zhí)行過程來構(gòu)造一個(gè)JavaScript
擴(kuò)展框架的方法,并完整地講述了框架擴(kuò)展中各種設(shè)計(jì)取舍,因此可以作為研究計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言時(shí)的參考,用以展示現(xiàn)實(shí)系統(tǒng)如何實(shí)現(xiàn)經(jīng)典理論中的各種編程范型。
作者簡(jiǎn)介
周愛民,(Aimingoo),國(guó)內(nèi)軟件開發(fā)界資深軟件工程師、架構(gòu)師,技術(shù)作家。有十余年的軟件開發(fā)、項(xiàng)目管理、團(tuán)隊(duì)建設(shè)的經(jīng)驗(yàn)。著有《Delphi源代碼分析》、《大道至簡(jiǎn)》和《JavaScript語(yǔ)言精髓與編程實(shí)踐》等專著?!?001年,主持完成的“極光數(shù)據(jù)處理倉(cāng)庫(kù)中心系統(tǒng)”被河南省信息產(chǎn)業(yè)廳授予省高新技術(shù)產(chǎn)品二等獎(jiǎng)?!?003年,被美國(guó)Borland公司授予“Borland Delphi產(chǎn)品專家”稱號(hào)?!?004年,出版《Delphi源代碼分析》,被譽(yù)為“Delphi領(lǐng)域精品著作”?!?005年,發(fā)布《大道至簡(jiǎn)》電子版(第一版)?!?006年,發(fā)起開源項(xiàng)目QomolangmaOpenProiect,探討語(yǔ)言系統(tǒng)基礎(chǔ)技術(shù)?!?007年3月,出版《大道至簡(jiǎn)》(第二版)?!?008年3月,出版《JavaScript語(yǔ)言精髓與編程實(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來寫瀏覽器上的應(yīng)用
1.2.1 我要做一個(gè)聊天室
1.2.2 Flash的一席之地
1.2.3 RWC與RIA之爭(zhēng)
1.3 沒有框架與庫(kù)的語(yǔ)言能怎樣發(fā)展呢
1.3.1 做一個(gè)框架
1.3.2 重寫框架的語(yǔ)言層
1.3.3 富瀏覽器端開發(fā)與AJAX
1.4 語(yǔ)言的進(jìn)化
1.4.1 Qomo的重生
1.4.2 QoBean是對(duì)語(yǔ)言的重新組織
1.4.3 JavaScript作為一門語(yǔ)言的進(jìn)化
1.5 為JavaScript正名
1.5.1 JavaScript
1.5.2 Core JavaScript
1.5.3 SpiderMonkey JavaScript
1.5.4 ECMAScript
1.5.5 JScript
1.5.6 總述
1.6 JavaScript的應(yīng)用環(huán)境
1.6.1 宿主環(huán)境
1.6.2 外殼程序
1.6.3 運(yùn)行期環(huán)境
第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.1.1 基本數(shù)據(jù)類型
2.2.1.2 值類型與引用類型
2.2.2 變量聲明
2.2.3 變量與直接量
2.2.3.1 字符串直接量、轉(zhuǎn)義符
2.2.3.2 數(shù)值直接量
2.2.4 函數(shù)聲明
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.4.1 等值檢測(cè)
2.3.4.2 序列檢測(cè)
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.1.1 一般表達(dá)式語(yǔ)句
2.4.1.2 賦值語(yǔ)句與隱式的變量聲明
2.4.1.3 (顯式的)變量聲明語(yǔ)句
2.4.1.4 函數(shù)調(diào)用語(yǔ)句
2.4.2 分支語(yǔ)句
2.4.2.1 條件分支語(yǔ)句(if語(yǔ)句)
2.4.2.2 多重分支語(yǔ)句(switch
語(yǔ)句)
2.4.3 循環(huán)語(yǔ)句
2.4.4 流程控制:一般子句
2.4.4.1 標(biāo)簽聲明
2.4.4.2 break子句
2.4.4.3 continue子句
2.4.4.4 return子句
2.4.5 流程控制:異常
2.5 面向?qū)ο缶幊痰恼Z(yǔ)法概要
2.5.1 對(duì)象直接量聲明與實(shí)例創(chuàng)建
2.5.1.1 使用構(gòu)造器創(chuàng)建對(duì)象實(shí)例
2.5.1.2 對(duì)象直接量聲明
2.5.1.3 數(shù)組直接量聲明
2.5.1.4 正則表達(dá)式直接量聲明
2.5.1.5 【ES5】在對(duì)象直接量中使用屬性讀寫器
2.5.1.6 討論:初始器與直接量的區(qū)別
2.5.2 對(duì)象成員
2.5.2.1 對(duì)象成員列舉、存取和刪除
2.5.2.2 屬性存取與方法調(diào)用
2.5.2.3 對(duì)象及其成員的檢查
2.5.2.4 可列舉性
2.5.3 默認(rèn)對(duì)象的指定
2.6 【ES5】嚴(yán)格模式下的語(yǔ)法限制
2.6.1 語(yǔ)法限制
2.6.2 嚴(yán)格模式的范圍
2.7 運(yùn)算符的二義性
2.7.1 加號(hào)“+”的二義性
2.7.2 括號(hào)“( )”的二義性
2.7.3 冒號(hào)“:”與標(biāo)簽的二義性
2.7.4 大括號(hào)“{ }”的二義性
2.7.5 逗號(hào)“,”的二義性
2.7.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.2.1 主要的語(yǔ)法作用域及其效果
3.2.2.2 語(yǔ)法作用域之間的相關(guān)性
3.2.3 執(zhí)行流程及其變更
3.2.3.1 級(jí)別2:“break <label>”等語(yǔ)法
3.2.3.2 級(jí)別3:return子句
3.2.3.3 級(jí)別4:throw語(yǔ)句
3.2.3.4 執(zhí)行流程變更的內(nèi)涵
3.2.4 模塊化的效果:變量作用域
3.2.4.1 級(jí)別1:表達(dá)式
3.2.4.2 級(jí)別2:語(yǔ)句
3.2.4.3 級(jí)別3:函數(shù)(局部)
3.2.4.4 級(jí)別4:全局
3.2.4.5 變量作用域中的次序問題
3.2.4.6 變量作用域與變量的生存周期
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ù)制?寫時(shí)復(fù)制?還是讀遍歷?
3.3.5 構(gòu)造過程:從函數(shù)到構(gòu)造器
3.3.6 預(yù)定義屬性與方法
3.3.7 原型鏈的維護(hù)
3.3.7.1 兩個(gè)原型鏈
3.3.7.2 constructor屬性的維護(hù)
3.3.7.3 內(nèi)部原型鏈的作用
3.3.7.4 【ES5】在SpiderMonkey與ES5中的原型鏈維護(hù)
3.3.8 原型繼承的實(shí)質(zhì)
3.3.8.1 原型修改
3.3.8.2 原型繼承
3.3.8.3 原型繼承的實(shí)質(zhì):從無到有
3.3.8.4 如何理解“繼承來的成員”
3.4 JavaScript的對(duì)象系統(tǒng)
3.4.1 封裝
3.4.2 多態(tài)
3.4.3 事件
3.4.4 類抄寫?或原型繼承?
3.4.4.1 類抄寫
3.4.4.2 原型繼承存在的問題
3.4.4.3 如何選擇繼承的方式
3.4.5 JavaScript中的對(duì)象(構(gòu)造器)
3.4.6 不能通過繼承得到的效果
3.5 【ES5】可定制的對(duì)象屬性
3.5.1 屬性描述符
3.5.1.1 (一般的)數(shù)據(jù)屬性描述符
3.5.1.2 (帶讀寫器的)存取屬性描述符
3.5.1.3 直接量形式的初始器是語(yǔ)法格式,而非描述符
3.5.2 定制對(duì)象屬性
3.5.2.1 屬性聲明以及獲取屬性描述符
3.5.2.2 新的對(duì)象創(chuàng)建方法:Object.create()
3.5.3 屬性狀態(tài)維護(hù)
3.5.3.1 取屬性列表
3.5.3.2 使用defineProperty來維護(hù)屬性的性質(zhì)
3.5.3.3 對(duì)于繼承自原型的屬性,修改其值的效果
3.5.3.4 重寫原型繼承來的屬性的描述符
第4章 JavaScript的函數(shù)式語(yǔ)言特性
4.1 概述
4.1.1 從代碼風(fēng)格說起
4.1.2 為什么常見的語(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ù)外無副作用
4.3 從運(yùn)算式語(yǔ)言到函數(shù)式語(yǔ)言
4.3.1 JavaScript中的幾種連續(xù)運(yùn)算
4.3.1.1 連續(xù)賦值
4.3.1.2 三元表達(dá)式的連用
4.3.1.3 一些運(yùn)算連用
4.3.1.4 函數(shù)與方法的調(diào)用
4.3.2 運(yùn)算式語(yǔ)言
4.3.2.1 運(yùn)算的實(shí)質(zhì)是值運(yùn)算
4.3.2.2 有趣的運(yùn)算:在IE和J2EE中
4.3.3 如何消滅掉語(yǔ)句
4.3.3.1 通過表達(dá)式消滅分支語(yǔ)句
4.3.3.2 通過函數(shù)遞歸消滅循環(huán)語(yǔ)句
4.3.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.3.1 “函數(shù)”==“l(fā)ambda”
4.4.3.2 當(dāng)運(yùn)算符等義于某個(gè)函數(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.5.5.1 callee:我是誰(shuí)
4.5.5.2 caller:誰(shuí)呼(叫)我
4.6 閉包
4.6.1 閉包與函數(shù)實(shí)例
4.6.1.1 什么是閉包
4.6.1.2 什么是函數(shù)實(shí)例與函數(shù)引用
4.6.1.3 (在被調(diào)用時(shí),)每個(gè)函數(shù)實(shí)例至少擁有一個(gè)閉包
4.6.2 閉包與調(diào)用對(duì)象
4.6.2.1 “調(diào)用對(duì)象”的局部變量維護(hù)規(guī)則
4.6.2.2 “全局對(duì)象”的變量維護(hù)規(guī)則
4.6.2.3 函數(shù)閉包與“調(diào)用對(duì)象”的生存周期
4.6.3 閉包相關(guān)的一些特性
4.6.3.1 引用與泄漏
4.6.3.2 函數(shù)實(shí)例擁有多個(gè)閉包的情況
4.6.3.3 語(yǔ)句或語(yǔ)句塊中的閉包問題
4.6.3.4 閉包中的標(biāo)識(shí)符(變量)特例
4.6.3.5 函數(shù)對(duì)象的閉包及其效果
4.6.4 閉包與可見性
4.6.4.1 函數(shù)閉包帶來的可見性效果
4.6.4.2 對(duì)象閉包帶來的可見性效果
4.6.4.3 匿名函數(shù)的閉包與可見性效果
4.7 【ES5】嚴(yán)格模式與閉包
4.7.1 嚴(yán)格模式下的執(zhí)行限制
4.7.2 嚴(yán)格模式下的匿名函數(shù)遞歸問題
第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.2.1 編譯系統(tǒng)、解釋系統(tǒng)與編碼
5.1.2.2 動(dòng)態(tài)執(zhí)行
5.1.3 腳本系統(tǒng)的起源
5.1.4 腳本只是一種表面的表現(xiàn)形式
5.2 動(dòng)態(tài)執(zhí)行
5.2.1 動(dòng)態(tài)執(zhí)行與閉包
5.2.1.1 eval使用全局閉包
5.2.1.2 eval使用當(dāng)前函數(shù)的閉包
5.2.2 動(dòng)態(tài)執(zhí)行過程中的語(yǔ)句、表達(dá)式與值
5.2.3 奇特的、甚至是負(fù)面的影響
5.3 動(dòng)態(tài)方法調(diào)用(call、apply與bind)
5.3.1 動(dòng)態(tài)方法調(diào)用中指定this對(duì)象
5.3.2 丟失的this引用
5.3.3 棧的可見與修改
5.3.4 兼容性:低版本中的call()與apply()
5.3.5 【ES5】兼容性:ES5中的call()、apply()
5.3.6 【ES5】bind()方法與函數(shù)的延遲調(diào)用
5.4 重寫
5.4.1 原型重寫
5.4.2 構(gòu)造器重寫
5.4.2.1 語(yǔ)法聲明與語(yǔ)句含義不一致的問題
5.4.2.2 對(duì)象檢測(cè)的麻煩
5.4.2.3 構(gòu)造器的原型(prototype屬性)不受重寫影響
5.4.2.4 “內(nèi)部對(duì)象系統(tǒng)”不受影響
5.4.2.5 讓用戶對(duì)象系統(tǒng)影響內(nèi)部對(duì)象系統(tǒng)
5.4.2.6 構(gòu)造器重寫對(duì)直接量聲明的影響
5.4.2.7 構(gòu)造綁定
5.4.2.8 內(nèi)置構(gòu)造器重寫的概述
5.4.3 對(duì)象成員的重寫
5.4.3.1 成員重寫的檢測(cè)
5.4.3.2 成員重寫的刪除
5.4.4 宿主對(duì)重寫的限制
5.4.5 引擎對(duì)重寫的限制
5.4.5.1 this的重寫
5.4.5.2 語(yǔ)句語(yǔ)法中的重寫
5.4.5.3 結(jié)構(gòu)化異常處理中的重寫
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.5.4.1 函數(shù)特例
5.5.4.2 正則表達(dá)式特例
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.3.1 運(yùn)算導(dǎo)致的類型轉(zhuǎn)換
5.7.3.2 語(yǔ)句(語(yǔ)義)導(dǎo)致的類型轉(zhuǎn)換
5.7.4 值類型之間的轉(zhuǎn)換
5.7.4.1 undefined的轉(zhuǎn)換
5.7.4.2 number的轉(zhuǎn)換
5.7.4.3 boolean的轉(zhuǎn)換
5.7.4.4 string的轉(zhuǎn)換
5.7.4.5 值類型數(shù)據(jù)的顯式轉(zhuǎn)換
5.7.5 從引用到值:深入探究valueOf()方法
5.7.6 到字符串類型的顯式轉(zhuǎn)換
5.7.6.1 重寫toString()方法
5.7.6.2 從數(shù)值到字符串的顯式轉(zhuǎn)換
5.7.6.3 其他類型的顯式轉(zhuǎn)換
5.7.6.4 序列化
第3部分 編程實(shí)踐
第6章 元語(yǔ)言:QoBean核心技術(shù)與實(shí)現(xiàn)
6.1 QoBean語(yǔ)言層的基本特性
6.1.1 QoBean語(yǔ)言層概要
6.1.1.1 如何使用QoBean
6.1.1.2 QoBean中的面向?qū)ο螅∣OP)
6.1.1.3 QoBean中的接口(Interface)
6.1.1.4 QoBean中的切面(Aspect)
6.1.2 Qomo的體系結(jié)構(gòu)及其與QoBean的關(guān)系
6.2 QoBean的元語(yǔ)言特性
6.2.1 QoBean如何理解元語(yǔ)言
6.2.2 算法與數(shù)據(jù)結(jié)構(gòu)
6.2.2.1 引用類型與值類型的數(shù)據(jù)
6.2.2.2 函數(shù)調(diào)用
6.2.2.3 源起
6.2.2.4 小結(jié)
6.2.3 代碼組織形式
6.2.3.1 塊,以及基于塊的編織
6.2.3.2 更強(qiáng)的編織
6.2.3.3 邏輯代碼塊:局部、全局,以及閉包
6.2.3.4 邏輯的屬主
6.2.4 對(duì)“如何組織對(duì)象”的補(bǔ)充
6.2.4.1 原子,與原子聯(lián)結(jié)的友類、友函數(shù)
6.2.4.2 對(duì)象唯一化
6.2.5 綜述
6.3 基于元語(yǔ)言實(shí)現(xiàn)的語(yǔ)言特性
6.3.1 基于元語(yǔ)言的類繼承框架
6.3.1.1 類注冊(cè)過程
6.3.1.2 示例:實(shí)現(xiàn)MetaClass與MetaObject的約定
6.3.1.3 完整的Qomo語(yǔ)法實(shí)現(xiàn)
6.3.1.4 類類型樹的建立
6.3.2 多投事件
6.3.3 其他語(yǔ)言特性的實(shí)現(xiàn)
6.4 基于元語(yǔ)言實(shí)現(xiàn)的DSL
6.4.1 DSL的基本設(shè)計(jì)
6.4.2 DSL的基本實(shí)現(xiàn)
6.4.3 DSL的基本應(yīng)用
6.4.4 一些修補(bǔ)
6.4.5 基于嚴(yán)格模式的一些修補(bǔ)
第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ì)象的值含義來構(gòu)造復(fù)雜對(duì)象
7.8 控制字符串替換過程的基本模式
7.9 實(shí)現(xiàn)二叉樹
7.10 將函數(shù)封裝為方法
7.11 使用with語(yǔ)句來替代函數(shù)參數(shù)傳遞
7.12 使用對(duì)象閉包來重置重寫
7.13 構(gòu)造函數(shù)參數(shù)
7.14 使用更復(fù)雜的表達(dá)式來消減if語(yǔ)句
7.15 利用鉤子函數(shù)來擴(kuò)展功能
7.16 安全的字符串
附錄A 術(shù)語(yǔ)表
附錄B 主要引擎的特性差異列表
附錄C 附圖
附錄D 參考書目
附錄E 本書各版次主要修改
章節(jié)摘錄
版權(quán)頁(yè):插圖:我最開始做的網(wǎng)頁(yè)只用于展示信息,是一個(gè)個(gè)單純的、靜態(tài)的網(wǎng)頁(yè),并通過一些超鏈接連接起來。當(dāng)時(shí)網(wǎng)頁(yè)開發(fā)的環(huán)境并不好(像現(xiàn)在的Dreamweaver這類程序,那時(shí)只能是夢(mèng)想),因此我只能用、記事本(notepad.exe)來寫HTML。當(dāng)時(shí)顯示這些htm文件的瀏覽器就是Netscape Navigator3。我很快就遇到了麻煩,因?yàn)镻&J的朋友說希望讓瀏覽網(wǎng)頁(yè)的用戶們能做更多的事,例如搜索等操作。我笑著說:“如果在電子公告板上,寫段腳本就可以了;但在互聯(lián)網(wǎng)上面,卻要做很多的工作。”事實(shí)上我并不知道要做多少的工作。我隨后查閱的資料表明:不但要在網(wǎng)頁(yè)中放一些表單讓瀏覽者提交信息,還要在網(wǎng)站的服務(wù)器上寫些代碼來響應(yīng)這些提交信息。我向那位先生攤開雙手,說:“如果你真的想要這樣做,那么我們可能需要三個(gè)月,或者更久。因?yàn)槲疫€必須學(xué)習(xí)一些新鮮的玩意兒才行?!蹦菚r(shí)的觸網(wǎng)者,對(duì)這些“新鮮的玩意兒”的了解還幾乎是零。因此,這個(gè)想法很自然地被擱置了。而我后來(1997年)被調(diào)到成都,終于有更多的機(jī)會(huì)接觸Intenet,而且瀏覽器環(huán)境已經(jīng)換成了Intenet Explorer 4.0。那是一個(gè)美好的時(shí)代。通過互聯(lián)網(wǎng)絡(luò),大量的新東西很快被傳遞進(jìn)來。我終于有機(jī)會(huì)了解一些新的技術(shù)名詞,例如css和JavaScript。當(dāng)時(shí)(1997年12月)HTML4.0的標(biāo)準(zhǔn)已經(jīng)確定,瀏覽器的兼容性開始變得更好,Internet Explorer(以下簡(jiǎn)稱IE)也越來越有取代Netscape Navigator(以下簡(jiǎn)稱NN)而一統(tǒng)天下的趨勢(shì)。除了這些,我還對(duì)在Delphi中進(jìn)行ISAPI-CGI和ISAPI Filter開發(fā)的技術(shù)也展開了深入的學(xué)習(xí)。1.1.2 第一段在網(wǎng)頁(yè)中的代碼1998年,我被調(diào)回到河南鄭州,成為一名專職程序員,任職于當(dāng)時(shí)一家開發(fā)反病毒軟件的公司,主要工作是用Delphi做Windows環(huán)境下的開發(fā)。而當(dāng)時(shí)我的個(gè)人興趣之一,就是“做一個(gè)個(gè)人網(wǎng)站”。那時(shí)大家都對(duì)“做主頁(yè)”很感興趣,我的老朋友傅貴就專門寫了一套代碼,以方便普通互聯(lián)網(wǎng)用戶將自己的主頁(yè)放到“個(gè)人空間”里。同時(shí),他還為這些個(gè)人用戶提供了公共的BBS程序和一些其他的服務(wù)器端代碼。但我并不滿足于這些,我滿腦子想的是做一個(gè)“自己的網(wǎng)站”。
編輯推薦
《JavaScript語(yǔ)言精髓與編程實(shí)踐(第2版)》編輯推薦:以JavaScript視角看整個(gè)計(jì)算機(jī)語(yǔ)言的世界,小角度引來的大話題,難得的實(shí)踐派寫書風(fēng)格,對(duì)語(yǔ)法認(rèn)識(shí)細(xì)致入微,這是一本硬書,在技術(shù)原創(chuàng)書中,屬于稀有“異數(shù)”之作。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
JavaScript語(yǔ)言精髓與編程實(shí)踐 PDF格式下載