Skip to content

Commit

Permalink
AutoCorrect files/zh-cn/web/javascript/**/*
Browse files Browse the repository at this point in the history
  • Loading branch information
huacnlee authored and irvin committed May 29, 2022
1 parent d75b52e commit 3e6cc8e
Show file tree
Hide file tree
Showing 15 changed files with 172 additions and 172 deletions.

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions files/zh-cn/web/javascript/about_javascript/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@

<h2 id="What_is_JavaScript.3F">什么是 JavaScript?</h2>

<p>JavaScript® (通常简写为JS)是一种轻量的、解释性的、面向对象的<a href="https://zh.wikipedia.org/wiki/%E5%A4%B4%E7%AD%89%E5%87%BD%E6%95%B0">头等函数</a>语言,其最广为人知的应用是作为网页的脚本语言,但同时它也在很多<a href="https://en.wikipedia.org/wiki/JavaScript#Uses_outside_web_pages">非浏览器环境下使用</a>JS是一种动态的<a href="https://zh.wikipedia.org/wiki/%E5%8E%9F%E5%9E%8B%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88">基于原型</a>和多<a href="https://zh.wikipedia.org/wiki/%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B">范式</a>的脚本语言,支持面向对象、命令式和函数式的编程风格。</p>
<p>JavaScript®(通常简写为 JS)是一种轻量的、解释性的、面向对象的<a href="https://zh.wikipedia.org/wiki/%E5%A4%B4%E7%AD%89%E5%87%BD%E6%95%B0">头等函数</a>语言,其最广为人知的应用是作为网页的脚本语言,但同时它也在很多<a href="https://en.wikipedia.org/wiki/JavaScript#Uses_outside_web_pages">非浏览器环境下使用</a>JS 是一种动态的<a href="https://zh.wikipedia.org/wiki/%E5%8E%9F%E5%9E%8B%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88">基于原型</a>和多<a href="https://zh.wikipedia.org/wiki/%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B">范式</a>的脚本语言,支持面向对象、命令式和函数式的编程风格。</p>

<p>JavaScript运行在网页的客户端,能被用来设计和编程网页在事件发生时的行为。JavaScript不仅易学而且强大,因此广泛用于对网页的控制。</p>
<p>JavaScript 运行在网页的客户端,能被用来设计和编程网页在事件发生时的行为。JavaScript 不仅易学而且强大,因此广泛用于对网页的控制。</p>

<p>与流行的误解相反,JavaScript 并不是“解释性 Java”。简单来说,JavaScript 是一个动态脚本语言,支持 <a href="/zh-CN/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#Class-Based_vs._Prototype-Based_Languages" title="zh-CN/docs/JavaScript/Guide/Details_of_the_Object_Model#Class-Based_vs._Prototype-Based_Languages">基于原型的</a> 对象构造。其基本语法被设计地与 Java 和 C++ 接近,来减少学习语言所需要的新概念。语言结构,如条件语句(if)、循环(for,while)、分支(switch)、异常捕获(try...catch)等和这些语言一致或者很接近。</p>

Expand All @@ -22,11 +22,11 @@ <h2 id="What_is_JavaScript.3F">什么是 JavaScript?</h2>

<p>如果您需要了解更多 JavaScript 编程信息,请参见下方的 <a href="#JavaScript_resources">JavaScript 资源</a> 链接。</p>

<h2 id="What_JavaScript_implementations_are_available.3F">有哪些 JavaScript 的实现?</h2>
<h2 id="What_JavaScript_implementations_are_available.3F">有哪些 JavaScript 的实现</h2>

<p>mozilla.org 上托管了两个 JavaScript 实现。<strong>首个</strong> JavaScript 由网景公司的 Brendan Eich 创建,并不断地更新以符合 ECMA-262 Edition 5 及其之后的标准版本。这个引擎,代号 <a href="/zh-CN/docs/Mozilla/Projects/SpiderMonkey" title="zh-CN/docs/SpiderMonkey">SpiderMonkey</a> ,是由 C/C++ 语言开发的。而 <a href="/zh-CN/docs/Rhino" title="zh-CN/docs/Rhino">Rhino</a> 引擎,主要由 Norris Boyd(同样也是在网景公司)创建,则是一个 Java 语言开发的 JavaScript 实现。与 SpiderMonkey 类似,Rhino 符合 ECMA-262 Edition 5 标准。</p>

<p>有很多优化技术如 TraceMonkey (Firefox 3.5)、JägerMonkey (Firefox 4) 和 IonMonkey 被不断添加到了 SpiderMonkey JavaScript 引擎。并且提升JavaScript执行效率的工作一直在进行</p>
<p>有很多优化技术如 TraceMonkey (Firefox 3.5)、JägerMonkey (Firefox 4) 和 IonMonkey 被不断添加到了 SpiderMonkey JavaScript 引擎。并且提升 JavaScript 执行效率的工作一直在进行</p>

<p>除了以上实现,还有其他一些流行的 JavaScript 引擎,如:</p>

Expand All @@ -37,15 +37,15 @@ <h2 id="What_JavaScript_implementations_are_available.3F">有哪些 JavaScript
<li>The <a class="external" href="http://en.wikipedia.org/wiki/Chakra_%28JScript_engine%29" title="http://en.wikipedia.org/wiki/Chakra_%28JScript_engine%29">Chakra</a> 引擎,用在 Internet Explorer 中(尽管它实现的语言被正式地称作为“JScript”来避免商标问题)。</li>
</ul>

<p>每个 mozilla.org 的 JavaScript 引擎都提供了 公用API使程序开发者能将其JavaScript嵌入自己的软件中。目前最常见的 JavaScript 宿主环境是网页浏览器。浏览器一般通过 API 创建“宿主对象”来负责将<a class="external" href="http://www.w3.org/DOM/">DOM</a> 反射到 JavaScript 中。</p>
<p>每个 mozilla.org 的 JavaScript 引擎都提供了 公用 API 使程序开发者能将其 JavaScript 嵌入自己的软件中。目前最常见的 JavaScript 宿主环境是网页浏览器。浏览器一般通过 API 创建“宿主对象”来负责将<a class="external" href="http://www.w3.org/DOM/">DOM</a> 反射到 JavaScript 中。</p>

<p>另一个常见的 JavaScript 应用是作为服务端脚本语言。JavaScript 服务器提供宿主对象代表 HTTP 请求和响应,随后可以通过 JavaScript 程序来动态的生成 Web 页面。<a href="https://nodejs.org/en/">Node.js</a>便是一个流行的例子。</p>

<h2 id="JavaScript_resources">JavaScript 资源</h2>

<dl>
<dt><a href="/zh-CN/docs/Mozilla/Projects/SpiderMonkey" title="zh-CN/docs/SpiderMonkey">SpiderMonkey</a></dt>
<dd>Mozilla使用C/C++引擎实现JavaScript(又称为SpiderMonkey),以及如何在应用中嵌入使用的相关信息。</dd>
<dd>Mozilla 使用 C/C++ 引擎实现 JavaScript(又称为 SpiderMonkey),以及如何在应用中嵌入使用的相关信息。</dd>
<dt><a href="/zh-CN/docs/Rhino" title="zh-CN/docs/Rhino">Rhino</a></dt>
<dd>Rhino(Java 语言实现的 JavaScript)的相关信息。</dd>
<dt><a href="/zh-CN/docs/Web/JavaScript/Language_Resources" title="zh-CN/docs/JavaScript_Language_Resources">语言资源</a></dt>
Expand All @@ -54,4 +54,4 @@ <h2 id="JavaScript_resources">JavaScript 资源</h2>
<dd><a href="/zh-CN/docs/Web/JavaScript/Guide" title="zh-CN/docs/JavaScript/Guide">JavaScript 指南</a><a href="/zh-CN/docs/Web/JavaScript/Reference" title="zh-CN/docs/JavaScript/Reference">JavaScript 参考</a></dd>
</dl>

<p>JavaScript®是Oracle于美国和其他国家注册和拥有的商标</p>
<p>JavaScript®是 Oracle 于美国和其他国家注册和拥有的商标</p>
8 changes: 4 additions & 4 deletions files/zh-cn/web/javascript/closures/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ <h2 id="闭包"><strong>闭包</strong></h2>

<p>第一眼看上去,也许不能直观地看出这段代码能够正常运行。在一些编程语言中,一个函数中的局部变量仅存在于此函数的执行期间。一旦 <code>makeFunc()</code> 执行完毕,你可能会认为 <code>name</code> 变量将不能再被访问。然而,因为代码仍按预期运行,所以在 JavaScript 中情况显然与此不同。</p>

<p>原因在于,JavaScript中的函数会形成了闭包<em>闭包</em>是由函数以及声明该函数的词法环境组合而成的。该环境包含了这个闭包创建时作用域内的任何局部变量。在本例子中,<code>myFunc</code> 是执行 <code>makeFunc</code> 时创建的 <code>displayName</code> 函数实例的引用。<code>displayName</code> 的实例维持了一个对它的词法环境(变量 <code>name</code> 存在于其中)的引用。因此,当 <code>myFunc</code> 被调用时,变量 <code>name</code> 仍然可用,其值 <code>Mozilla</code> 就被传递到<code>alert</code>中。</p>
<p>原因在于,JavaScript 中的函数会形成了闭包<em>闭包</em>是由函数以及声明该函数的词法环境组合而成的。该环境包含了这个闭包创建时作用域内的任何局部变量。在本例子中,<code>myFunc</code> 是执行 <code>makeFunc</code> 时创建的 <code>displayName</code> 函数实例的引用。<code>displayName</code> 的实例维持了一个对它的词法环境(变量 <code>name</code> 存在于其中)的引用。因此,当 <code>myFunc</code> 被调用时,变量 <code>name</code> 仍然可用,其值 <code>Mozilla</code> 就被传递到<code>alert</code>中。</p>

<p>下面是一个更有意思的示例 — 一个 <code>makeAdder</code> 函数:</p>

Expand Down Expand Up @@ -245,7 +245,7 @@ <h2 id="Creating_closures_in_loops_A_common_mistake">在循环中创建闭包:

<p>运行这段代码后,您会发现它没有达到想要的效果。无论焦点在哪个<code>input</code>上,显示的都是关于年龄的信息。</p>

<p>原因是赋值给 <code>onfocus</code> 的是闭包。这些闭包是由他们的函数定义和在 <code>setupHelp</code> 作用域中捕获的环境所组成的。这三个闭包在循环中被创建,但他们共享了同一个词法作用域,在这个作用域中存在一个变量item。这是因为变量<code>item</code>使用var进行声明,由于变量提升,所以具有函数作用域。当<code>onfocus</code>的回调执行时,<code>item.help</code>的值被决定。由于循环在事件触发之前早已执行完毕,变量对象<code>item</code>(被三个闭包所共享)已经指向了<code>helpText</code>的最后一项。</p>
<p>原因是赋值给 <code>onfocus</code> 的是闭包。这些闭包是由他们的函数定义和在 <code>setupHelp</code> 作用域中捕获的环境所组成的。这三个闭包在循环中被创建,但他们共享了同一个词法作用域,在这个作用域中存在一个变量 item。这是因为变量<code>item</code>使用 var 进行声明,由于变量提升,所以具有函数作用域。当<code>onfocus</code>的回调执行时,<code>item.help</code>的值被决定。由于循环在事件触发之前早已执行完毕,变量对象<code>item</code>(被三个闭包所共享)已经指向了<code>helpText</code>的最后一项。</p>

<p>解决这个问题的一种方案是使用更多的闭包:特别是使用前面所述的函数工厂:</p>

Expand Down Expand Up @@ -298,13 +298,13 @@ <h2 id="Creating_closures_in_loops_A_common_mistake">在循环中创建闭包:
document.getElementById(item.id).onfocus = function() {
showHelp(item.help);
}
})(); // 马上把当前循环项的item与事件回调相关联起来
})(); // 马上把当前循环项的 item 与事件回调相关联起来
}
}

setupHelp();</pre>

<p>如果不想使用过多的闭包,你可以用ES2015引入的let关键词</p>
<p>如果不想使用过多的闭包,你可以用 ES2015 引入的 let 关键词</p>

<pre class="brush: js">function showHelp(help) {
document.getElementById('help').innerHTML = help;
Expand Down
22 changes: 11 additions & 11 deletions files/zh-cn/web/javascript/data_structures/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ Infinity

尽管一个数字通常仅代表它本身的值,但 JavaScript 提供了一些{{jsxref("Operators", "位运算符")}}。

> **备注:** 虽然位运算符可通过[掩码](https://zh.wikipedia.org/wiki/掩码)同时表示多个布尔类型的值,但这通常被认为是不好的。JavaScript 提供了其他的方式来表示一组布尔值(如一个布尔值数组或一个布尔值分配给命名属性的对象)。掩码也容易使代码变得难以阅读、理解和维护。
> **备注:** 虽然位运算符可通过 [掩码](https://zh.wikipedia.org/wiki/掩码) 同时表示多个布尔类型的值,但这通常被认为是不好的。JavaScript 提供了其他的方式来表示一组布尔值(如一个布尔值数组或一个布尔值分配给命名属性的对象)。掩码也容易使代码变得难以阅读、理解和维护。
在一些非常受限的情况下,可能需要用到这些技术,比如试图应对本地存储的存储限制,或在一些极端场景下(例如,网络传输的每一比特都尤为重要时)。位操作只应该是用来优化字节数的最后选择。

Expand Down Expand Up @@ -135,13 +135,13 @@ JavaScript 的字符串类型用于表示文本数据。它是一组 16 位的

### 符号类型

符号(Symbols)类型是**唯一****不可修改**的原始值,并且可以用来作为对象的键(key)(如下),在某些语言当中也有与之相似的类型(原子类型,atoms)。
符号(Symbols)类型是**唯一****不可修改**的原始值,并且可以用来作为对象的键 (key)(如下),在某些语言当中也有与之相似的类型(原子类型,atoms)。

更多详情可查看 {{Glossary("Symbol")}} 和 {{jsxref("Symbol")}}。

## 对象

在计算机科学中, 对象(object)是指内存中的可以被{{Glossary("Identifier", "标识符")}}引用的一块区域。
在计算机科学中对象(object)是指内存中的可以被{{Glossary("Identifier", "标识符")}}引用的一块区域。

### 属性

Expand Down Expand Up @@ -217,7 +217,7 @@ JavaScript 的字符串类型用于表示文本数据。它是一组 16 位的

| 特性 | 类型 | 描述 |
| ---------- | ------- | --------------------------------------------- |
| Read-only | Boolean | ES5 [[Writable]] 属性的反状态(Reversed state)。 |
| Read-only | Boolean | ES5 [[Writable]] 属性的反状态 (Reversed state)。 |
| DontEnum | Boolean | ES5 [[Enumerable]] 属性的反状态。 |
| DontDelete | Boolean | ES5 [[Configurable]] 属性的反状态。 |

Expand Down Expand Up @@ -252,20 +252,20 @@ JavaScript 的字符串类型用于表示文本数据。它是一组 16 位的

此外,数组对象还继承了 `Array.prototype` 的一些操作数组的便捷方法。例如,[`indexOf()`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)(搜索数组中的一个值)或 [`push()`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/push)(向数组中添加一个元素),等等。这使得数组是表示列表或集合的最优选择。

[类型数组(Typed Arrays)](/en-US/docs/Web/JavaScript/Typed_arrays) 是 ECMAScript 2015 中新定义的 JavaScript 内建对象,提供了一个基本的二进制数据缓冲区的类数组视图。下面的表格能帮助你找到对等的 C 语言数据类型:
[类型数组 (Typed Arrays)](/en-US/docs/Web/JavaScript/Typed_arrays) 是 ECMAScript 2015 中新定义的 JavaScript 内建对象,提供了一个基本的二进制数据缓冲区的类数组视图。下面的表格能帮助你找到对等的 C 语言数据类型:

| 类型 | 取值范围 | 占用字节数 | 描述 | Web IDL 类型 | 对等的 C 语言类型 |
| --------------------------------- | --------------------------------- | ------------ | ----------------------------------------------------------- | ---------------------- | --------------------------------- |
| {{jsxref("Int8Array")}} | `-128``127` | 1 | 8 位有符号整数(补码) | `byte` | `int8_t` |
| {{jsxref("Int8Array")}} | `-128``127` | 1 | 8 位有符号整数(补码) | `byte` | `int8_t` |
| {{jsxref("Uint8Array")}} | `0``255` | 1 | 8 位无符号整数 | `octet` | `uint8_t` |
| {{jsxref("Uint8ClampedArray")}} | `0``255` | 1 | 8 位无符号整数(固定数组) | `octet` | `uint8_t` |
| {{jsxref("Int16Array")}} | `-32768``32767` | 2 | 16 位有符号整数(补码) | `short` | `int16_t` |
| {{jsxref("Int16Array")}} | `-32768``32767` | 2 | 16 位有符号整数(补码) | `short` | `int16_t` |
| {{jsxref("Uint16Array")}} | `0``65535` | 2 | 16 位无符号整数 | `unsigned short` | `uint16_t` |
| {{jsxref("Int32Array")}} | `-2147483648``2147483647` | 4 | 32 位有符号整数(补码) | `long` | `int32_t` |
| {{jsxref("Int32Array")}} | `-2147483648``2147483647` | 4 | 32 位有符号整数(补码) | `long` | `int32_t` |
| {{jsxref("Uint32Array")}} | `0``4294967295` | 4 | 32 位无符号整数 | `unsigned long` | `uint32_t` |
| {{jsxref("Float32Array")}} | `1.2E-38``3.4E38` | 4 | 32 位 IEEE 浮点数(7 位有效数字,例如:`1.1234567` | `unrestricted float` | `float` |
| {{jsxref("Float64Array")}} | `5E-324``1.8E308` | 8 | 64 位 IEEE 浮点数(16 位有效数字,例如:`1.123...15` | `unrestricted double` | `double` |
| {{jsxref("BigInt64Array")}} | `-2^63``2^63 - 1` | 8 | 64 位有符号整数(补码) | `bigint` | `int64_t (signed long long)` |
| {{jsxref("Float32Array")}} | `1.2E-38``3.4E38` | 4 | 32 位 IEEE 浮点数(7 位有效数字,例如:`1.1234567`| `unrestricted float` | `float` |
| {{jsxref("Float64Array")}} | `5E-324``1.8E308` | 8 | 64 位 IEEE 浮点数(16 位有效数字,例如:`1.123...15`| `unrestricted double` | `double` |
| {{jsxref("BigInt64Array")}} | `-2^63``2^63 - 1` | 8 | 64 位有符号整数(补码) | `bigint` | `int64_t (signed long long)` |
| {{jsxref("BigUint64Array")}} | `0``2^64 - 1` | 8 | 64 位无符号整数 | `bigint` | `uint64_t (unsigned long long)` |

### 带键的集合:Maps, Sets, WeakMaps, WeakSets
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ <h2 id="统计表">统计表</h2>
<td>true</td>
</tr>
<tr>
<th scope="row">自身的Symbol</th>
<th scope="row">自身的 Symbol</th>
<td>true</td>
<td>false</td>
<td>true</td>
Expand Down
Loading

0 comments on commit 3e6cc8e

Please sign in to comment.