本書由淺入深、循序漸進地介紹了JavaScript語言和程序設計的基本概念,結合案例深入講解了JavaScript語言特性,強調了實現程序的算法和程序設計思想。全書共10章,第1章介紹JavaScript語言的入門知識;第2~5章介紹JavaScript的基本語法、算法及構成程序的順序、分支、循環(huán)結構;第6章對函數進行深入探討;第7章介紹面向對象的程序設計思想和方法;第8章和第9章介紹JavaScript語言中的兩個核心對象——字符串和數組;第10章簡要介紹異常的概念和程序調試的方法。 本書構思新穎、思路清晰、講述詳盡、案例豐富、通俗易懂,是Web開發(fā)愛好者學習程序設計最基礎又較全面的教材。本書既可以作為職業(yè)院校計算機專業(yè)的教學用書,也適合程序愛好者自學。
龔愛民,男,上海市工程技術管理學校,高級工程師。曾獲得《基于Sakai二次開發(fā)的互動教學平臺構建研究》獲崇明區(qū)教科研 一等獎。主要著作方向是數據分析、軟件及web研發(fā)、網頁設計、程序設計語言(c、c++、c#、java、php、js)、數據庫。
1 JavaScript快速入門 1
1.1 程序設計基本概念 1
1.1.1 計算機程序 1
1.1.2 程序語言 2
1.1.3 什么是JavaScript語言 3
1.1.4 學習程序設計的方法 4
1.2 Hello world 4
1.3 基礎語法 6
1.3.1 直接量 6
1.3.2 運算符 6
1.3.3 輸出 7
1.3.4 換行、空格與分號 7
1.3.5 注釋 8
1.3.6 輸入 9
2 變量與數據類型 10
2.1 變量 10
2.1.1 變量的定義 10
2.1.2 賦值和初始化 11
2.1.3 訪問變量 13
2.2 常量 14
2.3 標識符與關鍵字 14
2.3.1 標識符 14
2.3.2 關鍵字 15
2.3.3 正確命名標識符 15
2.4 數據類型 16
2.4.1 數值類型 17
2.4.2 布爾類型 18
2.4.3 字符串類型 18
2.4.4 undefined與null 20
2.5 類型轉換 21
2.5.1 自動類型轉換 21
2.5.2 顯式類型轉換 22
3 順序結構程序設計 25
3.1 算法基礎 25
3.1.1 算法的概念 26
3.1.2 算法的描述 26
3.1.3 算法舉例 28
3.2 表達式和語句 29
3.2.1 表達式 29
3.2.2 語句 30
3.2.3 復合語句 30
3.3 順序結構 30
3.4 賦值運算 32
3.5 算術運算 32
3.5.1 自增和自減 33
3.5.2 算術運算的優(yōu)先級 34
3.5.3 算術運算的結合性 35
3.6 字符串運算 36
3.7 順序結構程序舉例 38
3.7.1 計算圓的周長和面積 38
3.7.2 交換變量的值 38
4 分支結構程序設計 40
4.1 條件判斷 40
4.2 關系運算與邏輯運算 41
4.2.1 關系運算 41
4.2.2 邏輯運算 43
4.2.3 關系運算與邏輯運算的優(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 條件運算 57
4.5 switch語句 58
4.6 分支結構程序舉例 60
4.6.1 閏年的判斷 60
4.6.2 最大值問題 63
5 循環(huán)結構程序設計 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 跳轉 77
5.7.1 break語句 77
5.7.2 continue語句 79
5.7.3 break語句和continue語句的區(qū)別 80
5.8 循環(huán)結構程序舉例 81
5.8.1 生成數列 81
5.8.2 字符串處理 82
6 函數 86
6.1 函數定義 86
6.1.1 無參數函數的定義 88
6.1.2 函數的參數 89
6.1.3 帶參數函數的定義 89
6.1.4 參數默認值 91
6.1.5 表達式定義 92
6.1.6 空函數 93
6.2 函數返回值 93
6.2.1 返回undefined 93
6.2.2 指定返回值 94
6.3 函數調用 95
6.3.1 直接調用 96
6.3.2 函數表達式 96
6.3.3 函數調用作為參數 97
6.3.4 函數的嵌套調用 97
6.3.5 自動調用函數 100
6.4 變量作用域 100
6.4.1 局部變量 100
6.4.2 全局變量 101
6.4.3 生命周期 102
6.5 函數舉例 102
6.5.1 素數 102
6.5.2 閏年判斷 103
7 類和對象 105
7.1 面向對象的概念 105
7.1.1 面向對象的程序語言 106
7.1.2 面向對象的程序設計 106
7.2 對象和對象直接量 106
7.2.1 對象的概念 106
7.2.2 對象直接量 107
7.3 創(chuàng)建和使用類 108
7.3.1 類和實例 108
7.3.2 定義類 109
7.3.3 訪問對象的屬性 114
7.3.4 修改對象的屬性 115
7.3.5 調用對象的方法 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 面向對象舉例 124
7.6.1 設計學生類 125
7.6.2 貪吃蛇 127
8 數組 134
8.1 一維數組 134
8.1.1 一維數組的定義 135
8.1.2 數組長度 135
8.1.3 訪問數組元素 136
8.1.4 遍歷一維數組 137
8.2 二維數組 141
8.2.1 二維數組的定義 141
8.2.2 訪問數組元素 142
8.2.3 遍歷二維數組 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 數組應用舉例 154
8.4.1 學生成績統(tǒng)計 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 常用內置對象舉例 187
9.4.1 時鐘 187
9.4.2 加密字符串 189
10 異常和調試 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調試工具調試 196
10.4.1 “source”面板 196
10.4.2 console 197
10.4.3 Breakpoint 198
10.4.4 debugger命令 200