商品簡介
作者簡介
目次
第1章 十年JAVASCRIPT
1.1 網頁中的代碼
1.1.1 新鮮的玩意兒
1.1.2 第一段在網頁中的代碼
1.1.3 最初的價值
1.2 用JAVASCRIPT來寫瀏覽器上的應用
1.2.1 我要做一個聊天室
1.2.2 Flash的一席之地
1.2.3 RWC與RIA之爭
1.3 沒有框架與庫的語言能怎樣發展呢?
1.3.1 做一個框架
1.3.2 重寫框架的語言層
1.3.3 富瀏覽器端開發(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的應用環境
1.5.1 宿主環境(host environment)
1.5.2 外殼程序(Shell)
1.5.3 運行期環境(runtime)
第2章 JAVASCRIPT的語法
2.1 語法綜述
2.1.1 標識符所綁定的語義
2.1.2 識別語法錯誤與運行錯誤
2.2 JAVASCRIPT的語法:變量聲明
2.2.1 變量的數據類型
2.2.2 變量聲明
2.2.3 變量聲明中的一般性問題
2.3 JAVASCRIPT的語法:表達式運算
2.3.1 一般表達式運算
2.3.2 邏輯運算
2.3.3 字符串運算
2.3.4 比較運算
2.3.5 賦值運算
2.3.6 函數調用
2.3.7 特殊作用的運算符
2.3.8 運算優先級
2.4 JAVASCRIPT的語法:語句
2.4.1 表達式語句
2.4.2 分支語句
2.4.3 循環語句
2.4.4 流程控制:一般子句
2.4.5 流程控制:異常
2.5 面向對象編程的語法概要
2.5.1 對象直接量聲明與實例創建
2.5.2 對象成員列舉、存取和刪除
2.5.3 屬性存取與方法調用
2.5.4 對象及其成員的檢查
2.5.5 可列舉性
2.5.6 默認對象的指定
2.6 運算符的二義性
2.6.1 加號“+”的二義性
2.6.2 括號“( )”的二義性
2.6.3 冒號“:”與標簽的二義性
2.6.4 大括號“{ }”的二義性
2.6.5 逗號“,”的二義性
2.6.6 方括號“[ ]”的二義性
第2部分 語言特性及基本應用
第3章 JAVASCRIPT的非函數式語言特性
3.1 概述
3.1.1 命令式語言與結構化編程
3.1.2 結構化的疑難
3.1.3 “面向對象語言”是突破嗎?
3.1.4 更高層次的抽象:接口
3.1.5 再論語言的分類
3.1.6 JavaScript的語源
3.2 基本語法的結構化含義
3.2.1 基本邏輯與代碼分塊
3.2.2 模塊化的層次:語法作用域
3.2.3 執行流程及其變更
3.2.4 模塊化的效果:變量作用域
3.2.5 語句的副作用
3.3 JAVASCRIPT中的原型繼承
3.3.1 空對象(null)與空的對象
3.3.2 原型繼承的基本性質
3.3.3 空的對象是所有對象的基礎
3.3.4 構造復制?寫時復制?還是讀遍歷?
3.3.5 構造過程:從函數到構造器
3.3.6 預定義屬性與方法
3.3.7 原型鏈的維護
3.3.8 原型繼承的實質
3.4 JAVASCRIPT的對象系統
3.4.1 封裝
3.4.2 多態
3.4.3 事件
3.4.4 類抄寫?或原型繼承?
3.4.5 JavaScript中的對象(構造器)
3.4.6 不能通過繼承得到的效果
第4章 JAVASCRIPT的函數式語言特性
4.1 概述
4.1.1 從代碼風格說起
4.1.2 為什么常見的語言不贊同連續求值
4.1.3 函數式語言的淵源
4.2 函數式語言中的函數
4.2.1 函數是運算元
4.2.2 在函數內保存數據
4.2.3 函數內的運算對函數外無副作用
4.3 從運算式語言到函數式語言
4.3.1 JavaScript中的幾種連續運算
4.3.2 運算式語言
4.3.3 如何消滅掉語句
4.4 函數:對運算式語言的補充和組織
4.4.1 函數是必要的補充
4.4.2 函數是代碼的組織形式
4.4.3 重新認識“函數”
4.4.4 JavaScript語言中的函數式編程
4.5 JAVASCRIPT中的函數
4.5.1 可變參數與值參數傳遞
4.5.2 非惰性求值
4.5.3 函數是第一型
4.5.4 函數是一個值
4.5.5 可遍歷的調用棧
4.6 閉包
4.6.1 什么是閉包
4.6.2 什么是函數實例與函數引用
4.6.3 (在被調用時,)每個函數實例至少擁有一個閉包
4.6.4 函數閉包與調用對象
4.6.5 函數實例擁有多個閉包的情況
4.6.6 語句或語句塊中的閉包問題
4.6.7 閉包中的標識符(變量)特例
4.6.8 函數對象的閉包及其效果
4.6.9 閉包與可見性
第5章 JAVASCRIPT的動態語言特性
5.1 概述
5.1.1 動態數據類型的起源
5.1.2 動態執行系統的起源
5.1.3 腳本系統的起源
5.1.4 腳本只是一種表面的表現形式
5.2 動態執行(EVAL)
5.2.1 動態執行與閉包
5.2.2 動態執行過程中的語句、表達式與值
5.2.3 奇特的、甚至是負面的影響
5.3 動態方法調用(CALL與APPLY)
5.3.1 動態方法調用中指定this對象
5.3.2 丟失的this引用
5.3.3 棧的可見與修改
5.3.4 兼容性:低版本中的call()與apply()
5.4 重寫
5.4.1 原型重寫
5.4.2 構造器重寫
5.4.3 對象成員的重寫
5.4.4 宿主對重寫的限制
5.4.5 引擎對重寫的限制
5.5 包裝類:面向對象的妥協
5.5.1 顯式包裝元數據
5.5.2 隱式包裝的過程與檢測方法
5.5.3 包裝值類型數據的必要性與問題
5.5.4 其他直接量與相應的構造器
5.6 關聯數組:對象與數組的動態特性
5.6.1 關聯數組是對象系統的基礎
5.6.2 用關聯數組實現的索引數組
5.6.3 干凈的對象
5.7 類型轉換
5.7.1 宿主環境下的特殊類型系統
5.7.2 值運算:類型轉換的基礎
5.7.3 隱式轉換
5.7.4 值類型之間的轉換
5.7.5 從引用到值:深入探究valueOf()方法
5.7.6 到字符串類型的顯式轉換
第3部分 編程實踐
第6章 QOMO框架的核心技術與實現
6.1 QOMO框架的技術發展與基本特性
6.1.1 Qomo框架的技術發展
6.1.2 Qomo的體系結構
6.1.3 Qomo框架設計的基本原則
6.2 基于類繼承的對象系統
6.2.1 Qomo類繼承的基本特性
6.2.2 Qomo類繼承的語法
6.2.3 Qomo類繼承系統的實現
6.2.4 Qomo類繼承系統的高級話題
6.3 多投事件系統
6.3.1 多投事件系統的基本特性與語法
6.3.2 多投事件系統的實現
6.3.3 多投事件的中斷與返回值
6.3.4 多投事件系統的安全性
6.4 接口系統
6.4.1 基本概念與語法
6.4.2 接口實現
6.4.3 Qomo接口系統的高級話題
6.4.4 接口委托
6.4.5 Qomo接口系統的實現
6.5 命名空間
6.5.1 Qomo命名空間的復雜性
6.5.2 命名空間的使用
6.5.3 命名空間的實現
6.6 AOP
6.6.1 基本概念與語法
6.6.2 高級切面特性
6.6.3 Qomo中切面系統的實現
6.7 其他
6.7.1 裝載、內聯與導入
6.7.2 四種模板技術
6.7.3 出錯處理
6.7.4 其他功能模塊
第7章 一般性的動態函數式語言技巧
7.1 消除代碼的全局變量名占用
7.2 一次性的構造器
7.3 對象充當識別器
7.4 識別NEW運算進行的構造器調用
7.5 使用直接量及其包裝類快速調用對象方法
7.6 三天前是星期幾?
7.7 使用對象的值含義來構造復雜對象
7.8 控制字符串替換過程的基本模式
7.9 實現二叉樹
7.10 將函數封裝為方法
7.11 使用WITH語句來替代函數參數傳遞
7.12 使用對象閉包來重置重寫
7.13 構造函數參數
7.14 使用更復雜的表達式來消減IF語句
7.15 利用鉤子函數來擴展功能
7.16 安全的字符串
附錄A:術語表
附錄B:主要引擎的特性差異列表
附錄C:附圖
附錄D:參考書目
主題書展
更多主題書展
更多書展本週66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。