JavaScript是Internet的語言,是創(chuàng)建令人驚訝的Web、你喜歡的站點交互和在線游戲的秘密武器。
《趣學JavaScript 教孩子學編程》用輕松愉快的方式,通過耐心的、按部就班的示例,以及充滿樂趣的圖示,幫助讀者輕松地學習編程基礎知識。全書共16章,從基礎知識開始,詳細介紹了操作字符串、數(shù)組以及循環(huán),然后繼續(xù)學習一些高級話題,如使用jQuery構(gòu)建交互性,以及使用畫布繪圖等。本書通過教授編寫一些簡單有趣的游戲,幫助讀者掌握JavaScript編程。每一章都構(gòu)建于上一章的基礎之上,并且每章末尾的編程挑戰(zhàn)能夠激發(fā)讀者更多的思考和學習興趣。
《趣學JavaScript 教孩子學編程》針對任何想要學習JavaScript或初次接觸編程的人。本書針對兒童學習JavaScript量身定做,但也適合作為不同年齡的初學者的第1本編程圖書。
全彩色印刷,零基礎學編程,孩子也能讀懂的編程圖書教授思路清晰,內(nèi)容活潑,易于學習和掌握通過有趣的繪圖程序或游戲,激發(fā)讀者的學習興趣每章末尾的編程挑戰(zhàn),舉一反三,幫助讀者牢固掌握所學的知識和技能
Nick Morgan是Twitter的一名前端工程師。他熱愛編程,并且特別關注JavaScript。Nick和她的未婚妻,以及他們的絨毛犬Pancake,居住在舊金山。他的博客是skilldrick.co.uk。
目 錄
第1部分 基礎知識
第1章 認識JavaScript2
1.1 認識JavaScript3
1.2 為何要學習JavaScript5
1.3 編寫JavaScript5
1.4 JavaScript程序的結(jié)構(gòu)7
1.4.1 語法8
1.4.2 注釋9
1.5 本章小結(jié)10
第2章 類型與變量11
2.1 數(shù)字和運算符12
2.2 變量15
2.2.1 命名變量16
2.2.2 使用數(shù)學創(chuàng)建新的變量17
2.2.3 遞增和遞減18
2.2.4 +=(加后賦值)和-=(減后賦值)19
2.3 字符串20
2.3.1 連接字符串21
2.3.2 查找字符串的長度22
2.3.3 從字符串中獲取單個字符22
2.3.4 截取字符串23
2.3.5 把字符串轉(zhuǎn)換為全部大寫或全部小寫24
2.4 Boolean26
2.4.1 邏輯操作符26
2.4.2 用Boolean比較數(shù)字28
2.5 undefined和null32
2.6 本章小結(jié)33
第3章 數(shù)組34
3.1 為什么要學習數(shù)組35
3.2 創(chuàng)建數(shù)組36
3.3 訪問數(shù)組元素37
3.4 設置和修改數(shù)組中的元素38
3.5 數(shù)組中的混合數(shù)據(jù)類型39
3.6 使用數(shù)組40
3.6.1 查看數(shù)組的長度40
3.6.2 為數(shù)組添加元素41
3.6.3 從數(shù)組中刪除元素42
3.6.4 數(shù)組相加44
3.6.5 查找數(shù)組中單個元素的索引46
3.6.6 把數(shù)組轉(zhuǎn)換成字符串46
3.7 數(shù)組的用途48
3.7.1 找到回家的路48
3.7.2 決策者程序50
3.7.3 創(chuàng)建一個隨機句子生成器52
3.8 本章小結(jié)53
3.9 編程挑戰(zhàn)54
第4章 對象55
4.1 創(chuàng)建對象56
4.2 訪問對象中的值58
4.3 給對象添加值58
4.4 把數(shù)組和對象組合到一起60
4.5 在控制臺查看對象62
4.6 對象的用途63
4.6.1 記錄欠款64
4.6.2 保存電影信息65
4.7 本章小結(jié)66
4.8 編程挑戰(zhàn)66
第5章 HTML的基礎知識68
5.1 文本編輯器69
5.2 **個HTML文檔70
5.3 標簽和元素70
5.3.1 標題元素71
5.3.2 段落元素71
5.3.3 HTML中的空白和塊級元素72
5.3.4 內(nèi)聯(lián)元素73
5.4 完整的HTML文檔74
5.5 HTML層級75
5.6 為HTML添加鏈接76
5.6.1 link屬性76
5.6.2 title屬性77
5.7 本章小結(jié)78
第6章 條件與循環(huán)79
6.1 在HTML中嵌入JavaScript80
6.2 條件81
6.2.1 if語句81
6.2.2 if…else語句82
6.2.3 if…else語句串83
6.3 循環(huán)86
6.3.1 while循環(huán)86
6.3.2 for 循環(huán)88
6.4 本章小結(jié)91
6.5 編程挑戰(zhàn)91
第7章 創(chuàng)建Hangman游戲94
7.1 與玩家交互95
7.1.1 創(chuàng)建一個輸入對話框95
7.1.2 使用confirm函數(shù)詢問Yes或者No97
7.1.3 使用alert為玩家提供信息98
7.1.4 為什么使用alert對話框而不是console.log呢98
7.2 設計游戲99
7.2.1 使用偽代碼來設計游戲99
7.2.2 記錄單詞的狀態(tài)100
7.2.3 設計游戲循環(huán)101
7.3 編寫游戲代碼101
7.3.1 選擇一個隨機單詞101
7.3.2 創(chuàng)建answerArray數(shù)組102
7.3.3 編寫游戲循環(huán)102
7.3.4 結(jié)束游戲106
7.4 游戲代碼106
7.5 本章小結(jié)108
7.6 編程挑戰(zhàn)108
第8章 函數(shù)110
8.1 函數(shù)的基本結(jié)構(gòu)111
8.2 創(chuàng)建一個簡單的函數(shù)111
8.3 調(diào)用一個函數(shù)111
8.4 把參數(shù)傳遞到函數(shù)中112
8.4.1 打印貓臉113
8.4.2 為一個函數(shù)傳遞多個參數(shù)114
8.5 從函數(shù)中返回值115
8.6 把函數(shù)調(diào)用當作值來使用117
8.7 使用函數(shù)來簡化代碼118
8.7.1 挑選隨機單詞的函數(shù)118
8.7.2 隨機句子生成器118
8.7.3 把隨機句子生成器封裝到一個函數(shù)中120
8.8 用return提前跳出函數(shù)120
8.9 使用多個return來代替if…else語句121
8.10 本章小結(jié)123
8.11 編程挑戰(zhàn)123
第2部分 高級JavaScript
第9章 DOM和jQuery128
9.1 選擇DOM元素129
9.1.1 用id標識元素129
9.1.2 使用getElementById選中一個元素130
9.1.3 使用DOM替換標題文本130
9.2 用jQuery操作DOM132
9.2.1 在HTML頁面中加載jQuery133
9.2.2 使用jQuery替代標題文本133
9.3 用jQuery創(chuàng)建一個新的元素134
9.4 使用jQuery讓元素產(chǎn)生動畫效果135
9.5 鏈化jQuery的動畫方法136
9.6 本章小結(jié)137
9.7 編程挑戰(zhàn)137
第10章 交互式編程139
10.1 使用setTimeout函數(shù)延時代碼140
10.2 取消一個timeout141
10.3 用setInterval多次調(diào)用代碼141
10.4 使用setInterval函數(shù)實現(xiàn)元素動畫143
10.5 對用戶行為做出響應145
10.5.1 對單擊做出響應145
10.5.2 鼠標移動事件147
10.6 本章小結(jié)148
10.7 編程挑戰(zhàn)148
第11章 尋找埋藏的寶藏150
11.1 設計游戲151
11.2 用HTML創(chuàng)建Web頁面152
11.3 選取一個隨機藏寶位置153
11.3.1 選取隨機數(shù)153
11.3.2 設置寶藏坐標153
11.4 單擊事件處理程序154
11.4.1 統(tǒng)計單擊154
11.4.2 計算單擊和寶藏之間的距離154
11.4.3 使用畢達哥拉斯定理155
11.4.4 告訴玩家他們有多近157
11.4.5 檢查玩家是否贏了158
11.5 綜合應用158
11.6 本章小結(jié)160
11.7 編程挑戰(zhàn)160
第12章 面向?qū)ο缶幊?61
12.1 一個簡單的對象162
12.2 給對象添加方法162
12.2.1 使用this關鍵字163
12.2.2 在多個對象之間共享方法163
12.3 使用構(gòu)造方法創(chuàng)建對象165
12.3.1 剖析構(gòu)造方法165
12.3.2 創(chuàng)建一個Car構(gòu)造方法165
12.4 繪制汽車167
12.5 測試drawCar函數(shù)168
12.6 用原型定制對象169
12.6.1 給Car原型添加一個draw方法170
12.6.2 添加一個moveRight方法171
12.6.3 添加向左、向上和向下移動的方法172
12.7 本章小結(jié)173
12.8 編程挑戰(zhàn)174
第3部分 Canvas
第13章 canvas元素176
13.1 創(chuàng)建一個基本的畫布177
13.2 在畫布上繪制177
13.2.1 選擇和保存canvas元素177
13.2.2 獲取繪制環(huán)境178
13.2.3 繪制方塊178
13.2.4 繪制多個方塊178
13.3 更改繪制顏色180
13.4 繪制矩形邊框181
13.5 繪制線條或路徑182
13.6 填充路徑184
13.7 繪制圓弧和圓185
13.7.1 繪制四分之一圓或一個圓弧186
13.7.2 繪制一個半圓187
13.7.3 繪制一個完整的圓187
13.8 用一個函數(shù)繪制多個圓187
13.9 本章小結(jié)189
13.10 編程挑戰(zhàn)190
第14章 在畫布上讓物體移動192
14.1 在頁面中移動193
14.1.1 清除畫布194
14.1.2 繪制矩形194
14.1.3 修改位置194
14.1.4 在瀏覽器中查看動畫194
14.2 對方塊的大小實現(xiàn)動畫195
14.3 隨機的蜜蜂196
14.3.1 一個新的circle函數(shù)196
14.3.2 繪制蜜蜂197
14.3.3 更新蜜蜂的位置198
14.3.4 實現(xiàn)嗡嗡飛的蜜蜂動畫200
14.4 彈回一個球201
14.4.1 Ball構(gòu)造方法202
14.4.2 繪制球202
14.4.3 移動球203
14.4.4 彈跳球204
14.4.5 實現(xiàn)球的動畫205
14.5 本章小結(jié)206
14.6 編程挑戰(zhàn)207
第15章 用鍵盤控制動畫209
15.1 鍵盤事件210
15.1.1 建立HTML文件210
15.1.2 添加keydown事件處理程序210
15.1.3 使用對象把鍵代碼轉(zhuǎn)換為名稱212
15.2 用鍵盤移動一個球213
15.2.1 設置畫布213
15.2.2 定義circle函數(shù)214
15.2.3 創(chuàng)建Ball構(gòu)造方法214
15.2.4 定義move方法214
15.2.5 定義draw方法215
15.2.6 創(chuàng)建setDirection方法216
15.2.7 對鍵盤做出響應217
15.2.8 實現(xiàn)球的動畫218
15.3 綜合應用219
15.4 運行代碼221
15.5 本章小結(jié)222
15.6 編程挑戰(zhàn)222
第16章 開發(fā)貪吃蛇游戲第1部分224
16.1 游戲邏輯225
16.2 游戲的結(jié)構(gòu)225
16.2.1 使用setInterval來實現(xiàn)游戲動畫227
16.2.2 創(chuàng)建游戲?qū)ο?28
16.2.3 設置鍵盤控制228
16.3 游戲設置228
16.3.1 創(chuàng)建HTML228
16.3.2 定義canvas、ctx、width和height變量229
16.3.3 將畫布劃分為塊229
16.3.4 定義score變量231
16.4 繪制邊框231
16.5 顯示分數(shù)232
16.5.1 設置文本基線233
16.5.2 設置大小和字體234
16.5.3 編寫drawScore函數(shù)236
16.6 結(jié)束游戲237
16.7 本章小結(jié)238
16.8 編程挑戰(zhàn)238
第17章 開發(fā)貪吃蛇游戲第2部分240
17.1 構(gòu)建Block構(gòu)造方法241
17.1.1 添加drawSquare方法242
17.1.2 添加drawCircle方法243
17.1.3 添加equal方法244
17.2 創(chuàng)建貪吃蛇245
17.2.1 編寫Snake構(gòu)造方法246
17.2.2 繪制貪吃蛇247
17.3 移動貪吃蛇247
17.3.1 添加move方法248
17.3.2 添加checkCollision方法251
17.4 用鍵盤設置貪吃蛇的方向253
17.4.1 添加keydown事件處理程序253
17.4.2 添加setDirection方法254
17.5 創(chuàng)建蘋果255
17.5.1 編寫Apple構(gòu)造方法255
17.5.2 繪制蘋果256
17.5.3 移動蘋果256
17.6 綜合應用257
17.7 本章小結(jié)262
17.8 編程挑戰(zhàn)263
術(shù)語表265
后記 繼續(xù)學習之路269