Skip to content
2 changes: 1 addition & 1 deletion 1-js/02-first-steps/01-hello-world/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ JavaScript 程序可以在 `<script>` 标签的帮助下插入到 HTML 文档的
<script src="/path/to/script.js"></script>
```

这里,`/path/to/script.js` 是脚本文件从站点根目录开始的绝对路径。当然也可以提供当前页面的相对路径。例如,`src ="script.js"` 表示当前文件夹中的 `"script.js"` 文件。
这里,`/path/to/script.js` 是脚本文件从网站根目录开始的绝对路径。当然也可以提供当前页面的相对路径。例如,`src ="script.js"` 表示当前文件夹中的 `"script.js"` 文件。

我们也可以提供一个完整的 URL 地址,例如:

Expand Down
2 changes: 1 addition & 1 deletion 1-js/02-first-steps/04-variables/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ const pageLoadTime = /* 网页加载所需的时间 */;
- 使用易读的命名,比如 `userName` 或者 `shoppingCart`。
- 离诸如 `a`、`b`、`c` 这种缩写和短名称远一点,除非你真的知道你在干什么。
- 变量名在能够准确描述变量的同时要足够简洁。不好的例子就是 `data` 和 `value`,这样的名称等于什么都没说。如果能够非常明显地从上下文知道数据和值所表达的含义,这样使用它们也是可以的。
- 脑海中的术语要和团队保持一致。如果站点的访客称为“用户”,则我们采用相关的变量命名,比如 `currentUser` 或者 `newUser`,而不要使用 `currentVisitor` 或者一个 `newManInTown`。
- 脑海中的术语要和团队保持一致。如果网站的访客称为“用户”,则我们采用相关的变量命名,比如 `currentUser` 或者 `newUser`,而不要使用 `currentVisitor` 或者一个 `newManInTown`。

听上去很简单?确实如此,但是在实践中选择一个一目了然的变量名称并非如此简单。大胆试试吧。

Expand Down
12 changes: 6 additions & 6 deletions 1-js/09-classes/07-mixins/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,19 +155,19 @@ let eventMixin = {
*/
trigger(eventName, ...args) {
if (!this._eventHandlers || !this._eventHandlers[eventName]) {
return; // 该事件名称没有对应的事件处理函数(handlers
return; // 该事件名称没有对应的事件处理程序(handler
}

// 调用事件处理函数(handlers
// 调用事件处理程序(handler
this._eventHandlers[eventName].forEach(handler => handler.apply(this, args));
}
};
```


1. `.on(eventName, handler)` — 指定函数 `handler` 以在具有对应名称的事件发生时运行。从技术上讲,这儿有一个用于存储每个事件名称对应的处理函数(handlers)的 `_eventHandlers` 属性,在这儿该属性就会将刚刚指定的这个 `handler` 添加到列表中。
1. `.on(eventName, handler)` — 指定函数 `handler` 以在具有对应名称的事件发生时运行。从技术上讲,这儿有一个用于存储每个事件名称对应的处理程序(handler)的 `_eventHandlers` 属性,在这儿该属性就会将刚刚指定的这个 `handler` 添加到列表中。
2. `.off(eventName, handler)` — 从处理程序列表中删除指定的函数。
3. `.trigger(eventName, ...args)` — 生成事件:所有 `_eventHandlers[eventName]` 中的事件处理函数(handlers)都被调用,并且 `...args` 会被作为参数传递给它们。
3. `.trigger(eventName, ...args)` — 生成事件:所有 `_eventHandlers[eventName]` 中的事件处理程序(handler)都被调用,并且 `...args` 会被作为参数传递给它们。

用法:

Expand All @@ -183,12 +183,12 @@ Object.assign(Menu.prototype, eventMixin);

let menu = new Menu();

// 添加一个事件处理函数(handler),在被选择时被调用:
// 添加一个事件处理程序(handler),在被选择时被调用:
*!*
menu.on("select", value => alert(`Value selected: ${value}`));
*/!*

// 触发事件 => 运行上述的事件处理函数(handler)并显示:
// 触发事件 => 运行上述的事件处理程序(handler)并显示:
// 被选中的值:123
menu.choose("123");
```
Expand Down
2 changes: 1 addition & 1 deletion 1-js/11-async/03-promise-chaining/01-then-vs-catch/task.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Promise:then 对比 catch

这两个代码片段是否相等?换句话说,对于任何处理函数(handler),它们在任何情况下的行为都相同吗?
这两个代码片段是否相等?换句话说,对于任何处理程序(handler),它们在任何情况下的行为都相同吗?

```js
promise.then(f1).catch(f2);
Expand Down
4 changes: 2 additions & 2 deletions 2-ui/2-events/01-introduction-browser-events/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ button.onclick = sayThanks();
<input type="button" id="button" onclick="sayThanks()">
```

这个区别很容易解释。当浏览器读取 HTML 特性(attribute)时,浏览器将会使用 **特性中的内容** 创建一个处理函数:`sayThanks()`。
这个区别很容易解释。当浏览器读取 HTML 特性(attribute)时,浏览器将会使用 **特性中的内容** 创建一个处理程序:`sayThanks()`。

所以,标记(markup)会生成下面这个属性:
```js
Expand Down Expand Up @@ -223,7 +223,7 @@ element.addEventListener(event, handler[, options]);
: 事件名,例如:`"click"`。

`handler`
: 处理函数
: 处理程序

`options`
: 具有以下属性的附加可选对象:
Expand Down
2 changes: 1 addition & 1 deletion 2-ui/2-events/04-default-browser-action/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ or

### 示例:菜单

考虑一个站点菜单,如下所示:
考虑一个网站菜单,如下所示:

```html
<ul id="menu" class="menu">
Expand Down
4 changes: 2 additions & 2 deletions 2-ui/5-loading/03-onload-onerror/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ img.onerror = function() {

## 跨源策略

这里有一条规则:来自一个站点的脚本无法访问其他站点的内容。例如,位于 `https://facebook.com` 的脚本无法读取位于 `https://gmail.com` 的用户邮箱。
这里有一条规则:来自一个网站的脚本无法访问其他网站的内容。例如,位于 `https://facebook.com` 的脚本无法读取位于 `https://gmail.com` 的用户邮箱。

或者,更确切地说,一个源(域/端口/协议三者)无法获取另一个源(origin)的内容。因此,即使我们有一个子域,或者仅仅是另一个端口,这都是不同的源,彼此无法相互访问。

Expand All @@ -119,7 +119,7 @@ img.onerror = function() {
noSuchFunction();
```

现在从它所在的同一个站点加载它
现在从它所在的同一个网站加载它

```html run height=0
<script>
Expand Down
Loading