Skip to content

Commit 8f967d5

Browse files
sammulyuansammulyuan
sammulyuan
authored and
sammulyuan
committed
Format
1 parent 486c236 commit 8f967d5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+437
-142
lines changed

01_daily_use.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# 日常用途
2+
23
1. 嵌入动态文本于HTML页面。
34
2. 对浏览器事件做出响应。
45
3. 读写HTML元素。

02_component.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
# 组成部分
1+
# 组成部分
2+
23
**ECMAScript,**描述了该语言的语法和基本对象。
34
**文档对象模型(DOM),**描述处理网页内容的方法和接口。
45
**浏览器对象模型(BOM),**描述与浏览器进行交互的方法和接口。

03_javascript_introduction.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
# JavaScript导论
2+
23
JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。
34
直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用`try{}catch(){}`
45
![Image of trycatch]
56
(images/trycatch.png)
67

7-
1. Javascript被归类为直译语言,因为目前主流的引擎都是每次运行时加载代码并解译。
8-
2. V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于V8的核心部份多数用Javascript撰写(而SpiderMonkey是用C++),因此在不同的测试上,两者性能互有优劣。
8+
1. Javascript被归类为直译语言,因为目前主流的引擎都是每次运行时加载代码并解译。
9+
10+
2. V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于V8的核心部份多数用Javascript撰写(而SpiderMonkey是用C++),因此在不同的测试上,两者性能互有优劣。
11+
912
3. 与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。

04_basic_characteristics.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# 基本特点
22

33
1. 是一种解释性脚本语言(代码不进行预编译)。
4+
45
2. 主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。
6+
57
3. 可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
8+
69
4. 跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。

05_tools_applications.md

+15
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,32 @@
11
# 了解工具和应用
22

3+
34
- **TestSwarm:**是Mozilla实验室推出的一个开源项目,它旨在为开发者提供在多个浏览器版本上快速轻松测试自己JavaScript代码的方法。
5+
46
- **Minimee:**在网络上,速度是很重要的,Minimee能帮助你将CSS和JavaScript文件进行自动压缩和打包。
7+
58
- **Doctor JS:**Doctor JS 是一款帮你分析 JavaScript 代码的工具,测试你的代码在多态、原型、异常和回调方面写得怎么样。
9+
610
- **Remy Sharp’s JSConsole:**一个在线的 JavaScript 控制台工具,对于测试、调试和演示非常有用。
11+
712
- **JavaScript Library Boilerplate:**JavaScript Library Boilerplate 帮助你随时随地创建自己的 JavaScript 库。
13+
814
- **Jsdoc-toolkit:**JsDoc Toolkit 是一款辅助工具,你只需要根据约定在 JavaScript 代码中添加相应的注释,它就可以根据这些注释来自动生成API文档。
15+
916
- **Jasmine BDD for your JavaScript:**Jasmine 是一个有名的javascript单元测试框架,它是独立的“行为驱动开发”框架。
17+
1018
- **ObfuscateJS: JavaScript compressor:**一款 JavaScript 混淆工具,去除空白和注释,重命名变量等。
19+
1120
- **PEG.js:**PEG.js 是一个JavaScript的表达式语法解析器,它使您能够轻松地建立复杂的数据或计算机程序语言的快速分析器。
21+
1222
- **JSONView:**JSONView 是一款帮助你在浏览器中查看JSON文档的Firefox插件。
23+
1324
- **JSonduit:**JSonduit 是一个将网页内容转换为 JSON 格式订阅器的工具。
25+
1426
- **Jsplumb:**JsPlumb 为开发者提供了可视化链接元素到页面的方法,可以结合jQuery、MooTools 和 YUI3使用。
27+
1528
- **Helma:** Helma 是一个用来开发快速、稳定的Web应用程序的开源框架,它使用JavaScript 来作为服务端脚本环境,从而可以省略编译周期。
29+
1630
- **HTML + JSON Report:**一款将 JSON 数据转换为可读性更高的HTML格式内容的在线工具。
31+
1732
- **JSON Editor:**这个编辑器可以帮助你方便的编辑 JSON 字符串。

06_code_structure.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# 了解JavaScript代码的结构
2+
23
- 通过在网页或工具中加入`<Script>…</Script>`标记JavaScript的开始和结束,将JavaScript代码放到`<Script>…</Script>`之间:
34

45
```
@@ -20,4 +21,5 @@
2021
```
2122

2223
- 原则上,放在`<head></head>``<body></body>`之间。但视情况可以放在网页的任何部分;
24+
2325
- 一个页面可以有几个`<Script>…</Script>` ,不同部分的方法和变量,可以共享。

07_basic.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# JavaScript基本
22

33
1. JavaScript是一门弱类型的语言,所有的变量定义均以var来实现
4+
45
2. JavaScript的变量必需先定义,再使用
6+
57
3. 在JavaScript中区分大小写,变量名是大小写敏感的,还需注意它必须以字母或下划线开始。

08_create_variable.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# JavaScript 创建变量
22

3+
34
1. JavaScript 变量与代数一样,JavaScript 变量可用于存放值(比如 x=2)和表达式(比z=x+y)。
45
1. 变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum,totalvolume)。
56
2. 变量必须以字母开头
@@ -17,9 +18,13 @@
1718
在 JavaScript 中创建变量通常称为“声明”变量。
1819

1920
- **使用 var 关键词来声明变量:**`var name`;
21+
2022
- 变量声明之后,该变量是空的(它没有值)。如需向变量赋值,请使用等号:`carname=“Hello"`;
23+
2124
- **也可以在声明变量时对其赋值:**`var name=“Hello”`
25+
2226
- **一条语句,多个变量:**语句以 var 开头,并使用逗号分隔变量即可:`var name="Hello", age=22, job="CEO"`;
27+
2328
- **声明也可横跨多行:**
2429

2530
例:
@@ -29,10 +34,13 @@ var name="Hello",
2934
age=22
3035
job="CEO";
3136
```
37+
3238
- 在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。
39+
3340
- 在执行过以下语句后,变量 name 的值将是 undefined:`var name`;
3441

35-
## 重新声明 JavaScript 变量
42+
## 重新声明 JavaScript 变量
43+
3644
如果重新声明 JavaScript 变量,该变量的值不会丢失:
3745
在以下两条语句执行后,变量 name 的值依然是 “Hello":
3846

09_operator.md

+19-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# JavaScript 运算符
2-
## **JavaScript算数运算符**
2+
3+
## JavaScript算数运算符
4+
35

46
运算符 | 描述 | 标注 | 例子 | 结果
57
------ | ------ | ------ | ----- | ------
@@ -11,7 +13,8 @@
1113
++ | 累加 | 一元运算符,操作对象加一;如果是x++返回增量后的值;如果是++x返回增量前的值 | 例:x=3 | x=x++=4 x=++x=3
1214
-- | 递减 | 同上面,操作对象递减1| 例:x=3 | x=x--=3 x=--x=2
1315

14-
## **JavaScript 赋值运算符**
16+
## JavaScript 赋值运算符
17+
1518

1619
是将右边的操作数赋予左边的操作对象,如 x=y 为将 y 赋予 x。
1720

@@ -27,36 +30,46 @@
2730
%= | x%=y | x=x%y | x=0
2831
^= | x^=y | x=x^y按位异或,不同为1,true,相同为0,false | x=15
2932

30-
## **JavaScript 字符串运算符**
33+
## JavaScript 字符串运算符
34+
3135
用于字符串值连结的运算符(+)将两个字符串值连结在一起。
3236
例如:“我的”+“计算机”就返回“我的计算机”
3337
如果把数字与字符串相加,结果将成为字符串。
34-
例:
38+
例:
39+
3540
```
3641
txt1="What a very";
3742
txt2="nice day";
3843
txt3=txt1+txt2;
3944
txt3 包含的值是 "What a verynice day"。
4045
```
46+
4147
要想在两个字符串之间增加空格,需要把空格插入一个字符串之中:
42-
例:
48+
例:
49+
4350
```
4451
txt1="What a very ";
4552
txt2="nice day";
4653
txt3=txt1+txt2;
4754
```
55+
4856
或者把空格插入表达式中:
49-
例:
57+
例:
58+
5059
```
5160
txt1="What a very";
5261
txt2="nice day";
5362
txt3=txt1+" "+txt2;
5463
```
64+
5565
在以上语句执行后,变量 txt3 包含的值是:"What a very nice day"
5666

5767
- 取子集函数:`substring(index1,index2)`
68+
5869
- 取长度属性:`length`
70+
5971
- 取字符串中的某一个字符的函数:`charAt(index)`
72+
6073
- 查找字符在字符串中的位置:(函数要注意大小写)
6174
从左往右找`indexOf(string)`
6275
从右往左找`lastIndexOf(string)`

10_comparison.md

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
# JavaScript 比较
2-
## JavaScript 比较运算符
1+
# JavaScript 比较
2+
3+
## JavaScript 比较运算符
4+
35
比较它的操作对象并返回一个逻辑值(true 或 false)。
46
操作对象即可以是数字也可以是字符串值。
57
给定 x=1 和 y=2,下面的表格解释了比较运算符:
@@ -15,7 +17,8 @@
1517
< | 小于 | 如果左边的操作对象小于右边操作对象返回true | x < y | true
1618
<= | 小于或等于 | 如果左边的操作对象小于或等于右边的操作对象返回true | y <= x | false
1719

18-
## JavaScript 逻辑运算符
20+
## JavaScript 逻辑运算符
21+
1922
返回一个布尔值
2023

2124
运算符 | 用法 | 描述
@@ -27,13 +30,16 @@
2730

2831
其语法为:条件?A:B
2932
如果条件为真,结果值为 A,否则为 B
30-
例:
33+
例:
34+
3135
```
3236
name=(age==“22”)?"Jessica":"Dear ";
3337
如果变量 age 中的值是 “22",则向变量 name 赋值 "Jessica ",否则赋值 "Dear"。
3438
```
39+
3540
## 运算符的优先级
41+
3642
是复合运算进行计算时的先后顺序,对于所有的二元运算都是从左到右进行计算,用圆括号来忽略优先级:
3743

3844
![Image of youxianji]
39-
(images/youxianji.png)
45+
(images/youxianji.png)

11_conditional_loops.md

+19-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# JavaScript 条件语句和循环
2-
##JavaScript If...Else
2+
3+
## JavaScript If...Else
34

45
- **If 语句:**只有当指定条件为 true 时,该语句才会执行代码。
56

@@ -10,6 +11,7 @@ if (条件)
1011
}
1112
注意:请使用小写的 if。使用大写字母(IF)会生成 JavaScript 错误!
1213
```
14+
1315
- **If...else 语句:**如果条件为 true,则执行 if 段语句,若为 false 则执行 else 段语句,用法如下:
1416

1517
```
@@ -22,8 +24,9 @@ if (条件) {
2224

2325
> 条件可以是任何结果值为 true 或 false 的 JavaScript 表达式,语句可以是任何可执行的 JavaScript 语句
2426
25-
它还可以任意层地被嵌套,如果条件语句后面是单条语句,那么就不需要大括号 {}。请看下例代码:
26-
例:
27+
它还可以任意层地被嵌套,如果条件语句后面是单条语句,那么就不需要大括号 {}。请看下例代码:
28+
例:
29+
2730
```javascript
2831
<SCRIPT>
2932
function checkData () {
@@ -56,8 +59,10 @@ else
5659
当条件 1 和 条件 2 都不为 true 时执行的代码
5760
}
5861
```
62+
5963
## JavaScript switch 语句
6064
65+
6166
- **switch 语句:**switch 语句允许程序给表达式求值,并用 case 标记来匹配表达式可能的值;如果匹配成立,程序将执行相应的语句,用法如下:
6267
6368
```
@@ -77,7 +82,8 @@ default : 语句;
7782
这意味着如果没有使用一个 break 语句,则多个 case 块被执行。
7883
3. 如果没有 case 等于表达式的值,则跳转到 default;如果没有 default 情况,则跳转到最后一步;继续执行紧接 switch 代码块末尾的语句。
7984
80-
例:
85+
例:
86+
8187
``` javascript
8288
var day=new Date().getDay();
8389
switch (day){
@@ -104,6 +110,7 @@ case 6:
104110
break;
105111
}
106112
```
113+
107114
## JavaScript for 循环
108115
109116
- **for 语句:**一个 for 语句进行循环直到条件为 false,用法如下:
@@ -113,6 +120,7 @@ for ([初始表达式]; [条件]; [增量表达式]) {
113120
被执行的代码块;
114121
}
115122
```
123+
116124
**初始表达式:** 在循环(代码块)开始前执行,该表达式只在执行循环前被执行一次;
117125
118126
> 初始表达式是可选的,也就是说不使用也可以,可以在初始表达式中初始化任意(或者多个)值
@@ -139,6 +147,7 @@ for (i = 0; i < 10; i++)
139147
- **For/In 循环:**JavaScript for/in 语句循环遍历对象的属性:
140148
141149
例:
150+
142151
```javascript
143152
var person={fname:"John",lname:"Doe",age:25};
144153
for (x in person)
@@ -171,10 +180,12 @@ do {
171180
> 首先执行一个语句块,然后重复循环的执行该语句块,直到条件表达式等于 false
172181
173182
## JavaScript Break 和 Continue 语句
183+
174184
- **break 语句:**可用于跳出循环
175185
break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话)
176186
177-
例:
187+
例:
188+
178189
```javascript
179190
for (i=0;i<10;i++)
180191
{
@@ -185,7 +196,8 @@ for (i=0;i<10;i++)
185196
186197
- **Continue 语句:** continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。
187198
188-
例:
199+
例:
200+
189201
``` javascript
190202
<script>
191203
function myFunction(){
@@ -199,6 +211,7 @@ function myFunction(){
199211
}
200212
</script>
201213
```
214+
202215
输出后会跳过5执行
203216
**continue 语句**(带有或不带标签引用)只能用在循环中。
204217
**break 语句**(不带标签引用),只能用在循环或 switch 中。

0 commit comments

Comments
 (0)