├── BOOK.assets
├── 1552904604507.png
├── 1552905378968.png
├── 1552912887244.png
├── 1552999312562.png
├── 1552999360878.png
├── 1552999390567.png
├── 1553079227178.png
├── 1556836336765.png
├── 1558824325517.png
├── 1563330252149.png
├── 1563331271632.png
├── 1565929449193.png
├── 1565930786117.png
├── 1565932209076.png
├── 1565932212738.png
├── 1800-census.jpg
├── 2237281220-5898949183cc3_articlex.png
├── 640.webp
├── F9B33FF24D7418356F52703587ED9922.jpg
├── numbers-table.png
└── swimming-timetable.png
├── BOOK.md
├── BOOK
└── image_165.png
├── MOTTO.md
├── README.assets
└── image_165.png
├── README.md
├── REFERENCE.md
├── SCRATCH.md
├── TODO.md
├── 事件
├── DOM事件.md
├── DOM操作.md
├── HTML控件.md
├── assets
│ ├── 1558824824647.png
│ ├── 1562599371222.png
│ ├── 1562626507612.png
│ ├── 1562998447733.png
│ ├── 1562999615730.png
│ ├── 1563063890497.png
│ ├── 1563326586026.png
│ ├── 1563326700807.png
│ ├── 1563326712428.png
│ ├── 1563327353017.png
│ ├── 1563327355516.png
│ ├── 1563327994789.png
│ ├── 1565500624871.png
│ ├── 1565500672733.png
│ ├── 1565500784247.png
│ ├── 1565501845034.png
│ ├── 1565503235616.png
│ ├── 1565505025525.png
│ ├── 1565506008086.png
│ ├── 1565562799087.png
│ ├── 1565563216094.png
│ ├── 1565584162296.png
│ ├── 1565584238135.png
│ ├── 1565586248914.png
│ ├── 1565590070635.png
│ ├── 1565590445363.png
│ ├── 1565600046914.png
│ ├── 1565679212423.png
│ ├── 1565682021275.png
│ ├── 1565767500359.png
│ ├── 1565771987739.png
│ ├── 1565772422179.png
│ ├── 1565853058826.png
│ ├── 1565854628479.png
│ ├── 1565854636619.png
│ ├── 1566463506773.png
│ ├── javascript_sensors_yaw.jpg
│ └── old-radio.jpg
├── 事件初探.md
├── 事件的细节.md
├── 定时器.md
├── 文档对象模型.md
├── 移动设备事件.md
└── 第六章.md
├── 信息处理
├── 二进制数据.md
├── 反应式编程.md
├── 案例研究:编程语言.md
├── 模板.md
├── 正则表达式.md
└── 算术表达式解析.md
├── 函数
├── assets
│ ├── 1555713818684.png
│ ├── 1555713844215.png
│ ├── 1555713869213.png
│ ├── 1556862479426.png
│ ├── th-1555712687236.jpg
│ └── th.jpg
├── 函数初步.md
├── 函数和算法.md
├── 方法.md
├── 生成器函数.md
├── 第五章.md
├── 第五章练习.md
├── 递归.md
└── 高阶函数.md
├── 分布式计算
├── AJAX.md
├── 互联网与信息传输.md
├── 分布式应用程序.md
├── 安全性.md
├── 客户端存储技术.md
├── 异步操作.md
└── 数据交换格式.md
├── 启程
├── HTML.md
├── Hello-world.md
├── assets
│ ├── 1552904604507.png
│ ├── 1552905378968.png
│ ├── 1552912887244.png
│ ├── 1552999312562.png
│ ├── 1552999360878.png
│ ├── 1552999390567.png
│ ├── 1553079227178.png
│ ├── 1553079359387.png
│ └── 1558824325517.png
├── 命名的值.md
├── 更进一步.md
├── 第二章.assets
│ ├── 1552904604507.png
│ ├── 1552905378968.png
│ ├── 1552912887244.png
│ ├── 1552999312562.png
│ ├── 1552999360878.png
│ ├── 1552999390567.png
│ ├── 1553079227178.png
│ ├── 1558824325517.png
│ ├── 1563330252149.png
│ └── 1563331271632.png
├── 第二章.md
└── 表达式与值.md
├── 图形与动画
├── Canvas.md
├── WebGL.md
├── 可伸缩矢量图形.md
├── 案例研究·波浪进度球.md
├── 案例研究:画图工具.md
├── 级联样式表.md
└── 计算机图形.md
├── 导出
├── BOOK.docx
├── BOOK.pdf
├── JavaScript 艺术之旅.docx
├── ~$第五章.docx
├── ~$第四章.docx
├── 第三章.docx
├── 第五章.docx
├── 第五章.pdf
├── 第四章.docx
└── 第四章.pdf
├── 数据
├── assets
│ ├── 1565929449193.png
│ ├── 1565930786117.png
│ ├── 1565932209076.png
│ ├── 1565932212738.png
│ ├── 2237281220-5898949183cc3_articlex.png
│ ├── bg2014121121-1.png
│ └── ieee754.jpg
├── 字符串.md
├── 对象.md
├── 数值.md
├── 数据类型.md
├── 数组.md
├── 第三章.md
├── 第三章练习.md
├── 解构赋值.md
└── 逻辑.md
├── 新的征途
├── Chrome 扩展.md
├── Electron.md
├── Node.js.md
├── 案例研究:聊天室.md
├── 案例研究:音乐播放器.md
└── 自动化工作流.md
├── 练习答案
└── 第四章.md
├── 绪论
└── 绪论.md
├── 设计原理
├── JavaScript标准对象.md
├── Symbol和迭代器.assets
│ └── 0054F331.png
├── Symbol和迭代器.md
├── assets
│ └── freezeSealAndPreventExtensions.png
├── 代理对象.md
├── 可见性和属性描述符.md
├── 求值策略.md
├── 类和原型.md
└── 装饰器.md
├── 语句
├── assets
│ ├── 1556836336765.png
│ └── 640.webp
├── for-in和for-of语句.md
├── for语句.md
├── if语句.md
├── switch语句.md
├── while和do-while语句.md
├── 异常处理.md
├── 第四章.md
├── 第四章练习.md
└── 语句优化.md
├── 软件开发
├── reference.md
├── 使用JavaScript库.md
├── 兼容性.md
├── 国际化.md
├── 性能.md
├── 模块化.md
├── 测试.md
└── 风格与质量.md
├── 附录
├── JavaScript语言参考.md
├── Unicode指南.md
└── 键码映射表.md
└── 魔法世界
├── WebRTC.md
├── Web幻灯片.md
├── 再探HTML5.md
├── 图像处理.md
├── 多线程.md
├── 数据可视化.md
└── 音频处理.md
/BOOK.assets/1552904604507.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1552904604507.png
--------------------------------------------------------------------------------
/BOOK.assets/1552905378968.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1552905378968.png
--------------------------------------------------------------------------------
/BOOK.assets/1552912887244.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1552912887244.png
--------------------------------------------------------------------------------
/BOOK.assets/1552999312562.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1552999312562.png
--------------------------------------------------------------------------------
/BOOK.assets/1552999360878.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1552999360878.png
--------------------------------------------------------------------------------
/BOOK.assets/1552999390567.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1552999390567.png
--------------------------------------------------------------------------------
/BOOK.assets/1553079227178.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1553079227178.png
--------------------------------------------------------------------------------
/BOOK.assets/1556836336765.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1556836336765.png
--------------------------------------------------------------------------------
/BOOK.assets/1558824325517.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1558824325517.png
--------------------------------------------------------------------------------
/BOOK.assets/1563330252149.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1563330252149.png
--------------------------------------------------------------------------------
/BOOK.assets/1563331271632.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1563331271632.png
--------------------------------------------------------------------------------
/BOOK.assets/1565929449193.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1565929449193.png
--------------------------------------------------------------------------------
/BOOK.assets/1565930786117.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1565930786117.png
--------------------------------------------------------------------------------
/BOOK.assets/1565932209076.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1565932209076.png
--------------------------------------------------------------------------------
/BOOK.assets/1565932212738.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1565932212738.png
--------------------------------------------------------------------------------
/BOOK.assets/1800-census.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/1800-census.jpg
--------------------------------------------------------------------------------
/BOOK.assets/2237281220-5898949183cc3_articlex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/2237281220-5898949183cc3_articlex.png
--------------------------------------------------------------------------------
/BOOK.assets/640.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/640.webp
--------------------------------------------------------------------------------
/BOOK.assets/F9B33FF24D7418356F52703587ED9922.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/F9B33FF24D7418356F52703587ED9922.jpg
--------------------------------------------------------------------------------
/BOOK.assets/numbers-table.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/numbers-table.png
--------------------------------------------------------------------------------
/BOOK.assets/swimming-timetable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK.assets/swimming-timetable.png
--------------------------------------------------------------------------------
/BOOK/image_165.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/BOOK/image_165.png
--------------------------------------------------------------------------------
/MOTTO.md:
--------------------------------------------------------------------------------
1 | # Motto
2 |
3 | ---
4 |
5 | 一些会在书中引用到以抒发思想感情的诗句、格言和梦话。
6 |
7 |
8 |
9 | 路漫漫其修远兮,吾将上下而求索。
10 |
11 | ——屈原《离骚》
12 |
13 |
14 |
15 | 新的转机和闪闪星斗,正在缀满无遮拦的天空。那是五千年的象形文字,那是未来人们凝视的眼睛。
16 |
17 | ——北岛《回答》
18 |
19 |
20 |
21 | 黑夜给了我黑色的眼睛,我却用它来寻找光明。
22 |
23 | ——顾城《一代人》
24 |
25 |
26 |
27 | 老玉米,金黄黄,养活了一国的小儿郎。我捧着玉米回头望,地里站着的是我的娘。
28 |
29 | ——《中国妈妈》
30 |
31 |
32 |
33 | 此后如竟没有炬火,我便是那唯一的光。
34 |
35 | ——鲁迅
36 |
37 |
38 |
39 | 魂兮归来!北方不可以止些。增冰峨峨,飞雪千里些。
40 |
41 | ——《招魂》
42 |
43 |
44 |
45 | 走过的人说树枝低了,走过的人说树枝在长。
46 |
47 | ——顾城《墓床》
48 |
49 |
50 |
51 | 原野上有一股好闻的淡淡焦味,太阳把一切成熟的东西焙得更成熟,黄透的枫叶杂着赭尽的橡叶,一路艳烧到天边。
52 |
53 | ——余光中
54 |
55 |
56 |
57 | 外面下着雨,已经下了许多天,点点滴滴,歪歪斜斜,像我的抄不完的草稿。
58 |
59 | ——张爱玲
60 |
61 |
62 |
63 | 城市是一粒粒精致的银扣,缀在旷野的黑绿色大氅上,不分昼夜地熠熠闪光。
64 |
65 | ——毕淑敏
66 |
67 |
68 |
69 | 我不知道,天为什么无端落起雨来了。薄薄的水雾把山和树隔到更远的地方去,我的窗外遂只剩下一片辽阔的空茫了。
70 |
71 | ——张晓风
72 |
73 |
74 |
75 | 寒不累时,则霜不降;温不兼日,则冰不释。
76 |
77 | ——王充
78 |
79 |
80 |
81 | 一条路是桃花,一条路是雪。开满了桃花的路上,云蒸霞蔚,前程似锦,不由得你不想往前走。
82 |
83 | ——季羡林
84 |
85 |
86 |
87 | 午夜醒来,后庭的月光正在涨潮,满园的林木都淹没在发亮的波澜里。
88 |
89 | ——张晓风
90 |
91 |
92 |
93 | 除非通过黑暗之径,人们不能抵达黎明。
94 |
95 | ——纪伯伦
96 |
97 |
--------------------------------------------------------------------------------
/README.assets/image_165.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tanpero/JavaScript-Art-Tour/cc3f2beef71edcd29077df49e6c3e813fce264c2/README.assets/image_165.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # JavaScript 艺术之旅
2 |
3 | ---
4 |
5 | 
6 |
7 | 
8 |
9 |
10 |
11 | 
12 |
13 | ---
14 |
15 | **绪论需要细细斟酌,因此它的内容暂时空缺。**
16 |
17 | 本书的写作计划和章节划分可参看目录,其中添加了链接的章节名称代表着已经完成,或正在写作、可预览的内容。
18 |
19 | ---
20 |
21 | 待办事项列表:[TODO](TODO.md)
22 |
23 | ---
24 |
25 | 目录
26 | =======
27 | - Station 1 绪论
28 |
29 | - Day 0
30 | - 这片土地上的旧时光
31 |
32 | - Station 2 启程
33 | - Day 1
34 |
35 | - [千里之行,始于足下](启程/Hello-world.md)
36 |
37 | - [辟自鸿蒙](启程/表达式与值.md)
38 |
39 | - [请叫阮的名](启程/命名的值.md)
40 |
41 | - [听风知雨·更进一步](启程/更进一步.md)
42 | - Day 2
43 |
44 | - [互联网的礼服·HTML](启程/HTML.md)
45 |
46 | - Station 3 数据山谷
47 | - Day 3
48 | - [万物原动力·逻辑](数据/逻辑.md)
49 | - [宇宙谐和论·数值](数据/数值.md)
50 | - Day 4
51 |
52 | - [交流的载体·字符串](数据/字符串.md)
53 | - Day 5
54 |
55 | - [道生万物·对象](数据/对象.md)
56 |
57 | - [时空列车·数组](数据/数组.md)
58 |
59 | - [物以类聚·数据类型](数据/数据类型.md)
60 | - [数据山谷的驿站](数据/第三章练习.md)
61 |
62 | - Station 4 语句河畔
63 | - Day 6
64 | - [正义的准绳·if 语句](语句/if语句.md)
65 | - [逐一排查·switch 语句](语句/switch语句.md)
66 | - Day 7
67 | - [以车代步·while 和 do-while 语句](语句/while和do-while语句.md)
68 | - [以梦为马·for 语句](语句/for语句.md)
69 | - [见微知著·for-in 和 for-of 语句](语句/for-in和for-of语句.md)
70 | - Day 8
71 | - [欲工先利器·语句优化](语句/语句优化.md)
72 | - [人以群分·解构赋值](数据/解构赋值.md)
73 | - Day 9
74 | - [安全的保障·异常处理](语句/异常处理.md)
75 | - [语句河畔的旅馆](语句/第四章练习.md)
76 |
77 | - Station 5 函数小镇
78 | - Day 10
79 | - [化繁为简·函数初步](函数/函数初步.md)
80 | - [手可摘星辰·函数和算法](函数/函数和算法.md)
81 | - [调兵遣将·方法](函数/方法.md)
82 | - Day 11
83 | - [大道至简·高阶函数](函数/高阶函数.md)
84 | - Day 12
85 | - [聚沙成塔·递归](函数/递归.md)
86 | - Day 13
87 | - 原子和宇宙·高级主题:函数式编程
88 | - [函数小镇的时光邮局](函数/第五章练习.md)
89 |
90 | - Station 6 事件博览会
91 | - Day 14
92 | - [电光火石·事件初探](事件/事件初探.md)
93 | - [山川相缪·文档对象模型](事件/文档对象模型.md)
94 | - Day 15
95 | - [高屋建瓴·HTML 控件](事件/HTML控件.md)
96 | - [硕果可采撷·DOM 操作](事件/DOM操作.md)
97 | - Day 16
98 | - 风声鹤唳·DOM 事件和定时器
99 | - 芥子纳须弥·事件的细节
100 | - Day 17
101 | - 行走在人间·移动设备事件
102 | - Day 18
103 | - 案例研究:富文本编辑器
104 | - 事件博览会的休息室
105 |
106 | - Station 7 原理图书馆
107 | - Day 19
108 | - [本是同根生·类和原型](设计原理/类和继承.md)
109 | - Day 20
110 | - [思考自我·可见性和属性描述符](设计原理/可见性和属性描述符.md)
111 | - [迷雾清泉·求值策略](设计原理/求值策略.md)
112 | - Day 21
113 | - [人间烟火·Symbol 和迭代器](设计原理/Symbol和迭代器.md)
114 | - Day 22
115 | - 白马非马·代理对象
116 | - Day 23
117 | - [物种起源·JavaScript 标准对象](设计原理/JavaScript标准对象.md)
118 | - 原理图书馆的会客厅
119 |
120 | - Station 8 软件开发公园
121 | - Day 24
122 | - 集思广益·使用 JavaScript 库
123 | - Day 25
124 | - 百炼成钢·测试
125 | - 分秒必争·性能
126 | - Day 26
127 | - 风雨无阻·兼容性
128 | - Day 27
129 | - [山中无岁月·模块化](软件开发/模块化.md)
130 | - Day 28
131 | - [山川异域,风月同天·国际化](软件开发/国际化.md)
132 | - Day 29
133 | - .[见微知著·风格与质量](软件开发/风格与质量.md)
134 | - 软件开发公园的沉思角
135 |
136 | - Station 9 分布式广场
137 | - Day 30
138 | - 让世界相连·互联网和信息传输
139 | - 殊途同归·数据交换格式
140 | - Day 31
141 | - 世界灯火·AJAX
142 | - Day 32
143 | - 鱼跃龙门·异步操作
144 | - Day 33
145 | - 光阴逆旅·分布式应用程序
146 | - 避风港湾·安全性
147 | - Day 34
148 | - 百代过客·客户端存储技术
149 | - 分布式广场的地下室
150 |
151 | - Station 10 图形和动画乐园
152 | - Day 35
153 | - 眼见为实·计算机图形
154 | - 绝世伴侣·级联样式表
155 | - Day 36
156 | - 游刃有余·可伸缩矢量图形
157 | - 案例研究:波浪进度球
158 | - Day 37
159 | - 挥洒青春·Canvas
160 | - 案例研究:画图工具
161 | - Day 38
162 | - 俯仰自如·WebGL
163 | - 图形和动画乐园的餐厅
164 |
165 | - Station 11 忍者道场
166 | - Day 39
167 | - 计研心算·算术表达式解析
168 | - 案例研究:编程语言
169 | - Day 40
170 | - 见素抱朴·正则表达式
171 | - Day 41
172 | - 水落石出·模板
173 | - Day 42
174 | - 闻风而兴·反应式编程
175 | - Day 43
176 | - 计算机的内心·二进制数据
177 | - 忍者道场的寝室
178 |
179 | - Station 12 魔法地下河
180 | - Day 44
181 | - 互通有无·再探 HTML 5
182 | - Day 45
183 | - 让数据说话·数据可视化
184 | - Day 46
185 | - 鹰瞵鹗视·图像处理
186 | - Day 47
187 | - 绕梁三日·音频处理
188 | - Day 48
189 | - 与时俱进·智能化 Web 应用
190 | - Day 49
191 | - 似水流年·WebRTC
192 | - 魔法地下河的码头
193 |
194 | - Station 13 星辰大海
195 | - Day 50
196 | - Node.js 服务器开发
197 | - 案例研究:聊天室
198 | - Day 51
199 | - 自动化工作流
200 | - Day 52
201 | - Electron 桌面开发
202 | - 案例研究:音乐播放器
203 | - Day 53
204 | - React Native 移动开发
205 | - 案例研究:天气日历
206 | - Day 54
207 | - WebAssembly
208 | - Day 55
209 | - 起点,终点:征途无尽
210 | - 星辰大海的山洞
211 |
212 | - 旅行手册
213 | - 指南 A
214 | JavaScript 语言参考
215 | - 指南 B
216 | Unicode 指南
217 | - 指南 C
218 | [键码映射表](附录/键码映射表.md)
219 |
220 | ---
221 |
222 | ## 关于本书
223 |
224 | 六年级某节平常的信息课上,隔壁座位的男生在翻一本 JavaScript 的书。
225 |
226 | 我借过来翻了翻,从此就踏上了一条不归路。
227 |
228 | 我还记得那本书平易浅显到一个小学生掌握 JavaScript 的基础知识毫无问题,
229 |
230 | 能够做出好玩的简单 Web 应用,在 DOM 和 Canvas 上挥洒自如。
231 |
232 | 甚至连分布式计算和 WebGL 等离一个小学生太远太抽象的知识,都在头脑中烙下印记,
233 |
234 | 成为一切的起点。
235 |
236 | 本书是一本从头开始的JavaScript书,
237 |
238 | 为了纪念我小学六年级时那段温暖祥和的日子,
239 |
240 | 为了向当年的那本入门书致敬。
241 |
242 |
243 |
244 | ## 关于作者
245 |
246 | 作者目前准高一,就读于广州市第六中学。本书主要写于初二至初三前期,之后暂时停滞。
247 |
248 | 对未来有一定的打算,但是长路漫漫,行止难至。
249 |
250 | 惟有一个人不眠的夜空里,总有繁星如昼。
251 |
252 |
--------------------------------------------------------------------------------
/REFERENCE.md:
--------------------------------------------------------------------------------
1 | - .Jeremy Keith, Jeffrey Sambells. *DOM Scripting: Web Design with JavaScript and the Document Object Model, Second Edition*. Berkeley. Apress L.P.. 2010.
2 | - John Resig, Bear Bibeault, Josip Maras. *JavaScript Ninja, Second Edition*. Greenwich. Manning Publications Co. .2016.
3 | - Eric S. Roberts. *Programming Abstractions in C++*. Standford. Pearson Education, Inc.. 2014.
4 | - Steve Fulton, Jeff Fulton. *HTML5 Canvas, Second Edition*, 8bitrocket Studios. O`Reilly. 2013
5 | - Mark E. Daggett. *Expert JavaScript*. Apress Media. 2013.
6 | - Den Odell. *Pro JavaScript Development: Coding, Capabilities, and Tooling*. Berkeley. Apress L.P.. 2014.
7 | - Lü Zhihua. *Pro D3.js: High-level programming of interactive Data visualization*. Beijing. Electronic Industry Press. 2015.
8 |
9 |
--------------------------------------------------------------------------------
/SCRATCH.md:
--------------------------------------------------------------------------------
1 | # Scratch
2 |
3 | ---
4 |
5 | 记录一些想法。
6 |
7 |
8 |
9 | 绪论会从互联网的诞生开始,经历洪荒时代、JavaScript 的诞生、浏览器大战、W3C 标准、ECMAScript 标准的发展、一直到当下最前沿的 JavaScript 周边技术,包括 WebGL、React Native、WebAssembly 等都会浮光掠影一番。
10 |
11 | 全书零散添加一些历史小故事。
12 |
13 | - HTML 的发展历程。
14 | - JavaScript 服务端的历史和 Node.js 的成功故事。
15 | - JavaScript Linter 的演变。
16 | - 前端库和框架的演变。
17 | - JavaScript 引擎的进化。
18 |
19 |
20 |
21 | 附录里添加一篇编辑器和开发环境选择指南。
22 |
23 | - Visual Studio Code
24 | - Atom
25 | - Bracket
26 | - WebStorm
27 | - Sublime Text
28 | - Notepad++
29 | - EditPlus
30 | - Vim
31 | - Emacs
32 | - Nano
33 |
34 |
35 |
36 | 第九章
37 |
38 | - 介绍了客户端与服务器的概念后,快速搭建一个简易服务器以进行后续示例。
39 |
40 |
41 |
42 | 第十四章
43 |
44 | - Node.js:编写一个聊天应用。
45 | - Electron:编写一个音乐播放器。
46 | - Ionic:编写一个天气应用。
47 |
--------------------------------------------------------------------------------
/TODO.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # TODO
4 |
5 | ---
6 |
7 | 暂时保留的待办事项列表。
8 |
9 |
10 |
11 | ---
12 |
13 | - 全局
14 |
15 | - [ ] 为每一章添加课后练习
16 |
17 | - [ ] 为每一章添加参考文献
18 |
19 | - [ ] 为每一节添加小结
20 |
21 | - 第二章
22 |
23 | - [ ] 更新第二章的运行器截图
24 |
25 | - [ ] 在第二章的 表达式 一节中加入关于十六进制和二进制的概念
26 |
27 | - [ ] 完成第二章的 HTML 一节相关内容
28 |
29 | 简要介绍 HTML 和在 HTML 中使用 JavaScript 的方式
30 |
31 | - 第三章
32 |
33 | - [x] 完成第三章的 数值 一节剩余内容
34 | - [x] 完成第三章的 模式匹配 一节
35 | - [x] 完成第三章的 字符串 一节中关于字符串操作的剩余内容
36 | - [x] 完成第三章的 数组 一节中关于数组操作的剩余内容
37 | - [x] 添加标签模板字符串相关内容(新的函数调用形式)
38 | - [x] 添加第三章中 对象 一节中有关 `this` 的说明
39 | - [ ] 添加 ECMAScript 6 的设置对象字面量中属性名的新语法
40 |
41 | - 第四章
42 |
43 | - [x] 在第四章的 for语句 一节中,增加数组遍历相关内容
44 | - [ ] 在第四章中添加有关 块级作用域 的内容
45 |
46 | - 第五章
47 | - [ ] 完成 生成器函数 一节
48 | - [ ] 完成 高级主题:函数式编程 一节
49 | - [ ] 完成 递归 一节剩余内容
50 | - [ ] 完成 高阶函数 一节中关于数组方法 `reduce`、`filter` 的解释
51 | - [x] 完成 高阶函数 一节中关于闭包的阐述
52 |
53 | - 第七章
54 |
55 | - [ ] 将 迭代协议 一节中有关迭代器的内容移到可迭代对象之前
56 |
--------------------------------------------------------------------------------
/事件/DOM事件.md:
--------------------------------------------------------------------------------
1 | ## DOM 事件
2 |
3 | ---
4 |
5 |
--------------------------------------------------------------------------------
/事件/HTML控件.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## HTML 控件
4 |
5 | ---
6 |
7 | ### 控件的概念
8 |
9 | *控件*(widget)是一个很广泛的概念,它的字面含义是“可以由用户控制的组件”,包括你在使用桌面和 Web 应用时看到的那些按钮、文本框、滑动条、图片、菜单等。它们为用户和应用程序提供了一个便捷的交流途径,合适的控件使应用程序的意图得以良好传达,给用户以良好的使用体验。所有页面上的元素,只要能对用户进行的一定操作进行响应,改变状态或做出其它反馈,或专门负责传达某一类信息,都可以被称为控件。
10 |
11 | 开发者在使用控件时,应当考虑两大因素,一是**语义清晰**,而是**用户友好**。按钮就是一类语义非常清楚的控件,当用户看见它时,就会知道应该点击它来达到一定目的。所有的按钮都是基于这种固有经验。在此基础上,承担不同任务的按钮可能会被赋予不同的样式或提示信息。按钮中间可以显示点说明作用的文本。
12 |
13 | ```html
14 |
17 | ```
18 |
19 | 在大多数 Web 浏览器上,一个默认的按钮都会呈现为灰色的矩形方块,静止状态、鼠标移上、点击时、点击后对应的效果都会发生改变,体现了按钮操作时的质感。(在作者所使用的的浏览器上只会发生光影变化)
20 |
21 | 
22 |
23 | 另一对例子是*单选按钮*和*下拉菜单*。单选按钮与普通的按钮有所不同,相信你一定见过它:
24 |
25 | 
26 |
27 | 如果要让用户在三四个选项里做出唯一选择,显然单选按钮是很合适的。当用户改变要改变选择时,只需要点击另一个选项前的圆框。但是选项和内容一多,全部平铺堆积在页面上,看上去显得杂乱无章。当用户不需要做出选择时,还会带给用户冗余的视觉信息。
28 |
29 | 
30 |
31 | 而下拉菜单默认状态下只会显示一行文本,当我们单击它时,就会弹出所有的选项——我们知道它弹出的内容不是通知或别的什么东西,而是供我们做出选择的选项。显示选项让用户做出选择,是单选按钮和下拉带单共有的语义。但当用户不需要做出选择时,下拉菜单会隐藏大部分内容,等到时机合适时再显示,不会给用户做出视觉上的困扰,这时下拉菜单就比单选按钮更加用户友好。而只有少量选项时,单选按钮要求用户做的事情更加一目了然,省去了单击才能显示所有选项的步骤,这时单选按钮比下拉菜单更加用户友好。
32 |
33 | 编写 HTML 是显示控件的一种基本方式。HTML 页面上可以使用的控件有十几种,我们将在下文中了解到大部分控件的具体使用。
34 |
35 |
36 |
37 |
38 |
39 | ### 生成控件的元素
40 |
41 | **1. input**
42 |
43 | HTML 中有许多元素和属性可以生成特定的控件。其中一个重要的元素是 ``,它本身在默认情况下会显示为一个空白的单行纯文本输入框(简称*文本输入框*),我们通常将它的 `type` 属性设置为 `"text"` 来强调它是一个“输入纯文本”的控件。通过将 `type` 属性设置为不同的值,`` 元素所产生的控件外观与作用也各不相同。在前面的温度转换器示例中,我们使用了文本输入框与数字输入框两类控件用于接收用户输入。其中,数字输入框在点击后,右侧会显示一对上下箭头,我们可以借助于此对输入的数值进行微调。
44 |
45 | 
46 |
47 | 文本输入框的一种变体专门用于输入密码,它是 ``,称为*密码输入框*。它和文本输入框一样接受文本输入,同时将停留在框内的文本显示为遮盖黑点。
48 |
49 | 另一个我们见过的控件是按钮。它也可以被视为输入控件的一种,因此
50 |
51 | ```html
52 |
53 | ```
54 |
55 | 会被渲染为:
56 |
57 | 
58 |
59 | 不过更方便的写法还是直接使用 `