本書由淺入深、循序漸進(jìn)地介紹了JavaScript語言和程序設(shè)計(jì)的基本概念,結(jié)合案例深入講解了JavaScript語言特性,強(qiáng)調(diào)了實(shí)現(xiàn)程序的算法和程序設(shè)計(jì)思想。全書共10章,第1章介紹JavaScript語言的入門知識;第2~5章介紹JavaScript的基本語法、算法及構(gòu)成程序的順序、分支、循環(huán)結(jié)構(gòu);第6章對函數(shù)進(jìn)行深入探討;第7章介紹面向?qū)ο蟮某绦蛟O(shè)計(jì)思想和方法;第8章和第9章介紹JavaScript語言中的兩個(gè)核心對象——字符串和數(shù)組;第10章簡要介紹異常的概念和程序調(diào)試的方法。 本書構(gòu)思新穎、思路清晰、講述詳盡、案例豐富、通俗易懂,是Web開發(fā)愛好者學(xué)習(xí)程序設(shè)計(jì)最基礎(chǔ)又較全面的教材。本書既可以作為職業(yè)院校計(jì)算機(jī)專業(yè)的教學(xué)用書,也適合程序愛好者自學(xué)。
龔愛民,男,上海市工程技術(shù)管理學(xué)校,高級工程師。曾獲得《基于Sakai二次開發(fā)的互動教學(xué)平臺構(gòu)建研究》獲崇明區(qū)教科研 一等獎。主要著作方向是數(shù)據(jù)分析、軟件及web研發(fā)、網(wǎng)頁設(shè)計(jì)、程序設(shè)計(jì)語言(c、c++、c#、java、php、js)、數(shù)據(jù)庫。
1 JavaScript快速入門 1
1.1 程序設(shè)計(jì)基本概念 1
1.1.1 計(jì)算機(jī)程序 1
1.1.2 程序語言 2
1.1.3 什么是JavaScript語言 3
1.1.4 學(xué)習(xí)程序設(shè)計(jì)的方法 4
1.2 Hello world 4
1.3 基礎(chǔ)語法 6
1.3.1 直接量 6
1.3.2 運(yùn)算符 6
1.3.3 輸出 7
1.3.4 換行、空格與分號 7
1.3.5 注釋 8
1.3.6 輸入 9
2 變量與數(shù)據(jù)類型 10
2.1 變量 10
2.1.1 變量的定義 10
2.1.2 賦值和初始化 11
2.1.3 訪問變量 13
2.2 常量 14
2.3 標(biāo)識符與關(guān)鍵字 14
2.3.1 標(biāo)識符 14
2.3.2 關(guān)鍵字 15
2.3.3 正確命名標(biāo)識符 15
2.4 數(shù)據(jù)類型 16
2.4.1 數(shù)值類型 17
2.4.2 布爾類型 18
2.4.3 字符串類型 18
2.4.4 undefined與null 20
2.5 類型轉(zhuǎn)換 21
2.5.1 自動類型轉(zhuǎn)換 21
2.5.2 顯式類型轉(zhuǎn)換 22
3 順序結(jié)構(gòu)程序設(shè)計(jì) 25
3.1 算法基礎(chǔ) 25
3.1.1 算法的概念 26
3.1.2 算法的描述 26
3.1.3 算法舉例 28
3.2 表達(dá)式和語句 29
3.2.1 表達(dá)式 29
3.2.2 語句 30
3.2.3 復(fù)合語句 30
3.3 順序結(jié)構(gòu) 30
3.4 賦值運(yùn)算 32
3.5 算術(shù)運(yùn)算 32
3.5.1 自增和自減 33
3.5.2 算術(shù)運(yùn)算的優(yōu)先級 34
3.5.3 算術(shù)運(yùn)算的結(jié)合性 35
3.6 字符串運(yùn)算 36
3.7 順序結(jié)構(gòu)程序舉例 38
3.7.1 計(jì)算圓的周長和面積 38
3.7.2 交換變量的值 38
4 分支結(jié)構(gòu)程序設(shè)計(jì) 40
4.1 條件判斷 40
4.2 關(guān)系運(yùn)算與邏輯運(yùn)算 41
4.2.1 關(guān)系運(yùn)算 41
4.2.2 邏輯運(yùn)算 43
4.2.3 關(guān)系運(yùn)算與邏輯運(yùn)算的優(yōu)先級 46
4.3 if語句 49
4.3.1 基本的if語句 49
4.3.2 if/else語句 52
4.3.3 if /else if/else語句 54
4.4 條件運(yùn)算 57
4.5 switch語句 58
4.6 分支結(jié)構(gòu)程序舉例 60
4.6.1 閏年的判斷 60
4.6.2 最大值問題 63
5 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 66
5.1 循環(huán)的概念 66
5.2 for語句 67
5.3 while語句 72
5.4 do/while語句 74
5.5 嵌套循環(huán) 75
5.6 不同循環(huán)語句的比較 77
5.7 跳轉(zhuǎn) 77
5.7.1 break語句 77
5.7.2 continue語句 79
5.7.3 break語句和continue語句的區(qū)別 80
5.8 循環(huán)結(jié)構(gòu)程序舉例 81
5.8.1 生成數(shù)列 81
5.8.2 字符串處理 82
6 函數(shù) 86
6.1 函數(shù)定義 86
6.1.1 無參數(shù)函數(shù)的定義 88
6.1.2 函數(shù)的參數(shù) 89
6.1.3 帶參數(shù)函數(shù)的定義 89
6.1.4 參數(shù)默認(rèn)值 91
6.1.5 表達(dá)式定義 92
6.1.6 空函數(shù) 93
6.2 函數(shù)返回值 93
6.2.1 返回undefined 93
6.2.2 指定返回值 94
6.3 函數(shù)調(diào)用 95
6.3.1 直接調(diào)用 96
6.3.2 函數(shù)表達(dá)式 96
6.3.3 函數(shù)調(diào)用作為參數(shù) 97
6.3.4 函數(shù)的嵌套調(diào)用 97
6.3.5 自動調(diào)用函數(shù) 100
6.4 變量作用域 100
6.4.1 局部變量 100
6.4.2 全局變量 101
6.4.3 生命周期 102
6.5 函數(shù)舉例 102
6.5.1 素?cái)?shù) 102
6.5.2 閏年判斷 103
7 類和對象 105
7.1 面向?qū)ο蟮母拍?105
7.1.1 面向?qū)ο蟮某绦蛘Z言 106
7.1.2 面向?qū)ο蟮某绦蛟O(shè)計(jì) 106
7.2 對象和對象直接量 106
7.2.1 對象的概念 106
7.2.2 對象直接量 107
7.3 創(chuàng)建和使用類 108
7.3.1 類和實(shí)例 108
7.3.2 定義類 109
7.3.3 訪問對象的屬性 114
7.3.4 修改對象的屬性 115
7.3.5 調(diào)用對象的方法 115
7.3.6 typeof與instanceof 117
7.3.7 for/in語句訪問對象屬性 119
7.4 封裝 119
7.4.1 私有屬性 120
7.4.2 操作私有屬性 120
7.4.3 靜態(tài)方法 122
7.5 繼承 123
7.6 面向?qū)ο笈e例 124
7.6.1 設(shè)計(jì)學(xué)生類 125
7.6.2 貪吃蛇 127
8 數(shù)組 134
8.1 一維數(shù)組 134
8.1.1 一維數(shù)組的定義 135
8.1.2 數(shù)組長度 135
8.1.3 訪問數(shù)組元素 136
8.1.4 遍歷一維數(shù)組 137
8.2 二維數(shù)組 141
8.2.1 二維數(shù)組的定義 141
8.2.2 訪問數(shù)組元素 142
8.2.3 遍歷二維數(shù)組 143
8.3 Array對象常用方法 144
8.3.1 concat() 145
8.3.2 push()與pop() 146
8.3.3 shift()與unshift() 147
8.3.4 slice() 148
8.3.5 splice() 148
8.3.6 reverse() 150
8.3.7 sort() 150
8.3.8 toString()與toLocaleString() 152
8.3.9 join()與split() 153
8.4 數(shù)組應(yīng)用舉例 154
8.4.1 學(xué)生成績統(tǒng)計(jì) 154
8.4.2 冒泡排序 156
8.4.3 貪吃蛇的移動 159
8.4.4 繪制迷宮地圖 168
9 JavaScript常用對象 170
9.1 String對象 170
9.1.1 創(chuàng)建String對象 170
9.1.2 String對象的屬性 171
9.1.3 String對象的常用方法 172
9.2 Date對象 182
9.2.1 Date對象的概念 182
9.2.2 Date對象的常用方法 184
9.3 Math對象 185
9.3.1 Math對象的概念 185
9.3.2 Math對象的常用屬性和方法 185
9.4 常用內(nèi)置對象舉例 187
9.4.1 時(shí)鐘 187
9.4.2 加密字符串 189
10 異常和調(diào)試 191
10.1 異常的概念 191
10.2 Error對象 192
10.3 異常處理 192
10.3.1 throw語句拋出異常 193
10.3.2 try/catch/finally捕捉異常 193
10.4 利用Chrome調(diào)試工具調(diào)試 196
10.4.1 “source”面板 196
10.4.2 console 197
10.4.3 Breakpoint 198
10.4.4 debugger命令 200