Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AutoCorrect files/zh-cn/web/javascript/reference/global_objects/{a,b}* #5976

Merged
merged 20 commits into from
May 29, 2022
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
834a444
AutoCorrect files/zh-cn/web/javascript/reference/global_objects/{a,b}*
huacnlee May 28, 2022
87b7a98
Update files/zh-cn/web/javascript/reference/global_objects/array/flat…
huacnlee May 29, 2022
a9ed6f3
Update files/zh-cn/web/javascript/reference/global_objects/array/from…
huacnlee May 29, 2022
1e07e7a
Update files/zh-cn/web/javascript/reference/global_objects/array/incl…
huacnlee May 29, 2022
a55049a
Update files/zh-cn/web/javascript/reference/global_objects/array/inde…
huacnlee May 29, 2022
f125734
Update files/zh-cn/web/javascript/reference/global_objects/array/inde…
huacnlee May 29, 2022
31cd032
Update files/zh-cn/web/javascript/reference/global_objects/array/inde…
huacnlee May 29, 2022
ab51d3f
Update files/zh-cn/web/javascript/reference/global_objects/array/spli…
huacnlee May 29, 2022
7e2d347
Update files/zh-cn/web/javascript/reference/global_objects/array/unsh…
huacnlee May 29, 2022
b5031ae
Update files/zh-cn/web/javascript/reference/global_objects/arraybuffe…
huacnlee May 29, 2022
f4998a6
Update files/zh-cn/web/javascript/reference/global_objects/arraybuffe…
huacnlee May 29, 2022
2ca98bd
Update files/zh-cn/web/javascript/reference/global_objects/atomics/co…
huacnlee May 29, 2022
08a50cd
Update files/zh-cn/web/javascript/reference/global_objects/atomics/ex…
huacnlee May 29, 2022
bfaf51c
Update files/zh-cn/web/javascript/reference/global_objects/atomics/is…
huacnlee May 29, 2022
1c5f81d
Update files/zh-cn/web/javascript/reference/global_objects/atomics/st…
huacnlee May 29, 2022
d4b8ad8
Update files/zh-cn/web/javascript/reference/global_objects/bigint/asi…
huacnlee May 29, 2022
c0a2357
Update files/zh-cn/web/javascript/reference/global_objects/bigint/asu…
huacnlee May 29, 2022
39f2aeb
Apply suggestions from code review
yin1999 May 29, 2022
5d76894
Update files/zh-cn/web/javascript/reference/global_objects/bigint/tol…
huacnlee May 29, 2022
95cb6f0
Merge branch 'main' into fix-002-12
huacnlee May 29, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ <h3 id="参数">参数</h3>
<dt><code>errors</code></dt>
<dd>错误的描述,默认为空。</dd>
<dt><code>message</code>{{Optional_Inline}}</dt>
<dd>AggregateError错误的提示信息。</dd>
<dd>AggregateError 错误的提示信息。</dd>
</dl>

<h2 id="描述">描述</h2>
Expand Down Expand Up @@ -48,7 +48,7 @@ <h3 id="实例属性">实例属性</h3>

<h2 id="示例">示例</h2>

<h3 id="捕获一个AggregateError">捕获一个AggregateError</h3>
<h3 id="捕获一个AggregateError">捕获一个 AggregateError</h3>

<pre class="brush: js;">Promise.any([
Promise.reject(new Error("some error")),
Expand All @@ -60,7 +60,7 @@ <h3 id="捕获一个AggregateError">捕获一个AggregateError</h3>
});
</pre>

<h3 id="创建一个AggregateError">创建一个AggregateError</h3>
<h3 id="创建一个AggregateError">创建一个 AggregateError</h3>

<pre class="brush: js;">try {
throw new AggregateError([
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ <h2 id="描述">描述</h2>

<h2 id="示例">示例</h2>

<p><code>species</code> 属性返回默认构造函数, 它用于 <code>Array</code> 对象的构造函数 <code>Array</code>:</p>
<p><code>species</code> 属性返回默认构造函数它用于 <code>Array</code> 对象的构造函数 <code>Array</code>:</p>

<pre class="brush: js">Array[Symbol.species]; // function Array()</pre>

<p>在继承类的对象中(例如你自定义的数组 <code>MyArray</code>),<code>MyArray</code> 的 <code>species</code> 属性返回的是 <code>MyArray</code> 这个构造函数. 然而你可能想要覆盖它,以便在你继承的对象 <code>MyArray</code> 中返回父类的构造函数 <code>Array</code> :</p>
<p>在继承类的对象中(例如你自定义的数组 <code>MyArray</code>),<code>MyArray</code> 的 <code>species</code> 属性返回的是 <code>MyArray</code> 这个构造函数然而你可能想要覆盖它,以便在你继承的对象 <code>MyArray</code> 中返回父类的构造函数 <code>Array</code> :</p>

<pre class="brush: js">class MyArray extends Array {
// 重写 MyArray 的 species 属性到父类 Array 的构造函数
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ <h3 id="Parameters">参数</h3>
<dt><code>target</code></dt>
<dd>0 为基底的索引,复制序列到该位置。如果是负数,<code>target</code> 将从末尾开始计算。如果 <code>target</code> 大于等于 <code>arr.length</code>,将不会发生拷贝。如果 <code>target</code> 在 <code>start</code> 之后,复制的序列将被修改以符合 <code>arr.length</code>。</dd>
<dt><code>start</code></dt>
<dd>0 为基底的索引,开始复制元素的起始位置。如果是负数,<code>start</code> 将从末尾开始计算。如果 <code>start</code> 被忽略,<code>copyWithin</code> 将会从0开始复制。</dd>
<dd>0 为基底的索引,开始复制元素的起始位置。如果是负数,<code>start</code> 将从末尾开始计算。如果 <code>start</code> 被忽略,<code>copyWithin</code> 将会从 0 开始复制。</dd>
<dt><code>end</code></dt>
<dd>0 为基底的索引,开始复制元素的结束位置。<code>copyWithin</code> 将会拷贝到该位置,但不包括 <code>end</code> 这个位置的元素。如果是负数, <code>end</code> 将从末尾开始计算。如果 <code>end</code> 被忽略,<code>copyWithin</code> 方法将会一直复制至数组结尾(默认为 <code>arr.length</code>)。</dd>
</dl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ <h2 id="语法">语法</h2>

<h3 id="返回值">返回值</h3>

<p>一个新的 {{jsxref("Array")}} 迭代器对象。<a href="http://www.ecma-international.org/ecma-262/6.0/#sec-createarrayiterator">Array Iterator</a>是对象,它的原型(__proto__:Array Iterator)上有一个<a href="http://www.ecma-international.org/ecma-262/6.0/#sec-%arrayiteratorprototype%.next">next</a>方法,可用用于遍历迭代器取得原数组的[key,value]。</p>
<p>一个新的 {{jsxref("Array")}} 迭代器对象。<a href="http://www.ecma-international.org/ecma-262/6.0/#sec-createarrayiterator">Array Iterator</a>是对象,它的原型(__proto__:Array Iterator)上有一个<a href="http://www.ecma-international.org/ecma-262/6.0/#sec-%arrayiteratorprototype%.next">next</a>方法,可用用于遍历迭代器取得原数组的 [key,value]。</p>

<h2 id="示例">示例</h2>

Expand Down Expand Up @@ -45,30 +45,30 @@ <h3 id="2、iterator.next()">2、iterator.next()</h3>
          value:(2) [0, "a"]
           __proto__: Object
*/
// iterator.next()返回一个对象,对于有元素的数组,
// 是next{ value: Array(2), done: false };
// next.done 用于指示迭代器是否完成:在每次迭代时进行更新而且都是false
// 直到迭代器结束done才是true
// next.value是一个["key","value"]的数组,是返回的迭代器中的元素值。
// iterator.next() 返回一个对象,对于有元素的数组,
// 是 next{ value: Array(2), done: false };
// next.done 用于指示迭代器是否完成:在每次迭代时进行更新而且都是 false
// 直到迭代器结束 done 才是 true
// next.value 是一个 ["key","value"] 的数组,是返回的迭代器中的元素值。
</pre>

<h3 id="3、iterator.next方法运行">3、iterator.next方法运行</h3>
<h3 id="3、iterator.next方法运行">3、iterator.next 方法运行</h3>

<pre class="brush: js">var arr = ["a", "b", "c"];
var iter = arr.entries();
var a = [];

// for(var i=0; i&lt; arr.length; i++){ // 实际使用的是这个
for(var i=0; i&lt; arr.length+1; i++){ // 注意,是length+1,比数组的长度大
var tem = iter.next(); // 每次迭代时更新next
console.log(tem.done); // 这里可以看到更新后的done都是false
if(tem.done !== true){ // 遍历迭代器结束done才是true
for(var i=0; i&lt; arr.length+1; i++){ // 注意,是 length+1,比数组的长度大
var tem = iter.next(); // 每次迭代时更新 next
console.log(tem.done); // 这里可以看到更新后的 done 都是 false
if(tem.done !== true){ // 遍历迭代器结束 done 才是 true
console.log(tem.value);
a[i]=tem.value;
}
}

console.log(a); // 遍历完毕,输出next.value的数组</pre>
console.log(a); // 遍历完毕,输出 next.value 的数组</pre>

<h3 id="4、二维数组按行排序">4、二维数组按行排序</h3>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ <h3 id="Parameters">参数</h3>
<dt><code>value</code></dt>
<dd>用来填充数组元素的值。</dd>
<dt><code>start</code> {{optional_inline}}</dt>
<dd>起始索引,默认值为0。</dd>
<dd>起始索引,默认值为 0。</dd>
<dt><code>end</code> {{optional_inline}}</dt>
<dd>终止索引,默认值为 <code>this.length</code>。</dd>
</dl>
Expand All @@ -36,15 +36,15 @@ <h3 id="返回值">返回值</h3>

<h2 id="Description">描述</h2>

<p><strong><code>fill</code></strong> 方法接受三个参数 <code>value</code>, <code>start</code> 以及 <code>end</code>. <code>start</code> 和 <code>end</code> 参数是可选的, 其默认值分别为 <code>0</code> 和 <code>this</code> 对象的 <code>length </code>属性值。</p>
<p><strong><code>fill</code></strong> 方法接受三个参数 <code>value</code>, <code>start</code> 以及 <code>end</code>. <code>start</code> 和 <code>end</code> 参数是可选的其默认值分别为 <code>0</code> 和 <code>this</code> 对象的 <code>length </code>属性值。</p>

<p>如果 <code>start</code> 是个负数, 则开始索引会被自动计算成为 <code>length+start</code>, 其中 <code>length</code> 是 <code>this</code> 对象的 <code>length </code>属性值。如果 <code>end</code> 是个负数, 则结束索引会被自动计算成为 <code>length+end</code>。</p>
<p>如果 <code>start</code> 是个负数则开始索引会被自动计算成为 <code>length+start</code>, 其中 <code>length</code> 是 <code>this</code> 对象的 <code>length </code>属性值。如果 <code>end</code> 是个负数则结束索引会被自动计算成为 <code>length+end</code>。</p>

<p><code><strong>fill</strong></code> 方法故意被设计成通用方法, 该方法不要求 <code>this</code> 是数组对象。</p>
<p><code><strong>fill</strong></code> 方法故意被设计成通用方法该方法不要求 <code>this</code> 是数组对象。</p>

<p><code><strong>fill</strong></code> 方法是个可变方法, 它会改变调用它的 <code>this</code> 对象本身, 然后返回它, 而并不是返回一个副本。</p>
<p><code><strong>fill</strong></code> 方法是个可变方法它会改变调用它的 <code>this</code> 对象本身然后返回它而并不是返回一个副本。</p>

<p>当一个对象被传递给 <strong><code>fill</code></strong>方法的时候, 填充数组的是这个对象的引用。</p>
<p>当一个对象被传递给 <strong><code>fill</code></strong>方法的时候填充数组的是这个对象的引用。</p>

<h2 id="示例">示例</h2>

Expand All @@ -61,8 +61,8 @@ <h2 id="示例">示例</h2>

// Objects by reference.
var arr = Array(3).fill({}) // [{}, {}, {}];
// 需要注意如果fill的参数为引用类型,会导致都执行同一个引用类型
// 如 arr[0] === arr[1] 为true
// 需要注意如果 fill 的参数为引用类型,会导致都执行同一个引用类型
// 如 arr[0] === arr[1] 为 true
arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]</pre>

<h2 id="Polyfill">Polyfill</h2>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
---
<div>{{JSRef}}</div>

<p><code><strong>filter()</strong></code> 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。 </p>
<p><code><strong>filter()</strong></code> 方法创建一个新数组其包含通过所提供函数实现的测试的所有元素。 </p>

<p>{{EmbedInteractiveExample("pages/js/array-filter.html")}}</p>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ <h3 id="寻找数组中的质数">寻找数组中的质数</h3>

<h2 id="Polyfill">Polyfill</h2>

<p>本方法在ECMAScript 6规范中被加入,可能不存在于某些实现中。你可以通过以下代码来补充 <code>Array.prototype.find()</code>。</p>
<p>本方法在 ECMAScript 6 规范中被加入,可能不存在于某些实现中。你可以通过以下代码来补充 <code>Array.prototype.find()</code>。</p>

<pre class="brush: js">// https://tc39.github.io/ecma262/#sec-array.prototype.find
if (!Array.prototype.find) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ <h3 id="Parameters">参数</h3>

<dl>
<dt><code>callback</code></dt>
<dd>针对数组中的每个元素, 都会执行该回调函数, 执行时会自动传入下面三个参数:
<dd>针对数组中的每个元素都会执行该回调函数执行时会自动传入下面三个参数
<dl>
<dt><code>element</code></dt>
<dd>当前元素。</dd>
Expand All @@ -37,7 +37,7 @@ <h3 id="Parameters">参数</h3>
</dl>
</dd>
<dt><code>thisArg</code></dt>
<dd>可选。执行<code>callback</code>时作为<code>this</code>对象的值.</dd>
<dd>可选。执行<code>callback</code>时作为<code>this</code>对象的值</dd>
</dl>

<h3 id="返回值">返回值</h3>
Expand All @@ -46,7 +46,7 @@ <h3 id="返回值">返回值</h3>

<h2 id="Description">描述</h2>

<p><code>findIndex</code>方法对数组中的每个数组索引<code>0..length-1</code>(包括)执行一次<code>callback</code>函数,直到找到一个<code>callback</code>函数返回真实值(强制为<code>true</code>)的值。如果找到这样的元素,<code>findIndex</code>会立即返回该元素的索引。如果回调从不返回真值,或者数组的<code>length</code>为0,则<code>findIndex</code>返回-1。 与某些其他数组方法(如Array#some)不同,在稀疏数组中,即使对于数组中不存在的条目的索引也会调用回调函数。</p>
<p><code>findIndex</code>方法对数组中的每个数组索引<code>0..length-1</code>(包括)执行一次<code>callback</code>函数,直到找到一个<code>callback</code>函数返回真实值(强制为<code>true</code>)的值。如果找到这样的元素,<code>findIndex</code>会立即返回该元素的索引。如果回调从不返回真值,或者数组的<code>length</code>为 0,则<code>findIndex</code>返回-1。 与某些其他数组方法(如 Array#some)不同,在稀疏数组中,即使对于数组中不存在的条目的索引也会调用回调函数。</p>

<p>回调函数调用时有三个参数:元素的值,元素的索引,以及被遍历的数组。</p>

Expand Down Expand Up @@ -123,9 +123,9 @@ <h2 id="Polyfill">Polyfill</h2>
}
</pre>

<p>如果您需要兼容不支持<code><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty">Object.defineProperty</a></code>的JavaScript引擎,那么最好不要对<code>Array.prototype</code>方法进行 polyfill ,因为您无法使其成为不可枚举的。</p>
<p>如果您需要兼容不支持<code><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty">Object.defineProperty</a></code>的 JavaScript 引擎,那么最好不要对<code>Array.prototype</code>方法进行 polyfill ,因为您无法使其成为不可枚举的。</p>

<p>使用此方法需要注意你是否在uc浏览器环境,如果你的页面在支付宝上使用尤其注意,因为支付宝使用的就是uc浏览器环境.</p>
<p>使用此方法需要注意你是否在 uc 浏览器环境,如果你的页面在支付宝上使用尤其注意,因为支付宝使用的就是 uc 浏览器环境。</p>

<h2 id="规范">规范</h2>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ <h3 id="扁平化嵌套数组">扁平化嵌套数组</h3>

<h3 id="扁平化与数组空项">扁平化与数组空项</h3>

<p><code>flat()</code> 方法会移除数组中的空项:</p>
<p><code>flat()</code> 方法会移除数组中的空项</p>

<pre class="brush: js">var arr4 = [1, 2, , 4, 5];
arr4.flat();
Expand Down Expand Up @@ -118,7 +118,7 @@ <h3 id="forEachisArraypushrecursivity">forEach+isArray+push+recursivity</h3>
      if (Array.isArray(item) &amp;&amp; depth &gt; 0) {
        flat(item, depth - 1)
      } else {
        // 去除空元素,添加非undefined元素
        // 去除空元素,添加非 undefined 元素
        item !== void 0 &amp;&amp; result.push(item);
      }
    }
Expand All @@ -127,7 +127,7 @@ <h3 id="forEachisArraypushrecursivity">forEach+isArray+push+recursivity</h3>
}
</pre>

<h3 id="使用堆栈stack">使用堆栈stack</h3>
<h3 id="使用堆栈_stack">使用堆栈 stack</h3>

<pre>// 无递归数组扁平化,使用堆栈
// 注意:深度的控制比较低效,因为需要检查每一个值的深度
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
---
<div>{{JSRef}}</div>

<p><code><strong>flatMap()</strong></code> 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map">map</a> 连着深度值为1的 <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat">flat</a> 几乎相同,但 <code>flatMap</code> 通常在合并成一种方法的效率稍微高一些。</p>
<p><code><strong>flatMap()</strong></code> 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map">map</a> 连着深度值为 1 的 <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat">flat</a> 几乎相同,但 <code>flatMap</code> 通常在合并成一种方法的效率稍微高一些。</p>

<p>\{{EmbedInteractiveExample("pages/js/array-flatmap.html")}}</p>

Expand Down Expand Up @@ -41,11 +41,11 @@ <h3 id="参数">参数</h3>

<h3 id="返回值">返回值</h3>

<p> 一个新的数组,其中每个元素都是回调函数的结果,并且结构深度 <code>depth</code> 值为1。</p>
<p> 一个新的数组,其中每个元素都是回调函数的结果,并且结构深度 <code>depth</code> 值为 1。</p>

<h2 id="描述">描述</h2>

<p>有关回调函数的详细描述,请参见 {{jsxref("Array.prototype.map()")}} 。 <code>flatMap</code> 方法与 <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map">map</a></code> 方法和深度depth为1的 <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat">flat</a></code> 几乎相同.</p>
<p>有关回调函数的详细描述,请参见 {{jsxref("Array.prototype.map()")}} 。 <code>flatMap</code> 方法与 <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map">map</a></code> 方法和深度 depth 为 1 的 <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat">flat</a></code> 几乎相同</p>

<h2 id="示例">示例</h2>

Expand Down Expand Up @@ -79,7 +79,7 @@ <h3 id="map_与_flatMap"><code>map()</code> 与 <code>flatMap()</code></h3>

<h3 id="在一个_map_期间增加或去除一些项">在一个 <code>map()</code> 期间增加或去除一些项</h3>

<p><code>flatMap</code> 能用于在map期间增删项目(也就是修改items的数量)。换句话说,它允许你遍历很多项使之成为另一些项(靠分别把它们放进去来处理),而不是总是一对一。 从这个意义上讲,它的作用类似于 <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter">filter</a>的对立面。只需返回一个1项元素数组以保留该项,返回一个多元素数组以添加项,或返回一个0项元素数组以删除该项。</p>
<p><code>flatMap</code> 能用于在 map 期间增删项目(也就是修改 items 的数量)。换句话说,它允许你遍历很多项使之成为另一些项(靠分别把它们放进去来处理),而不是总是一对一。 从这个意义上讲,它的作用类似于 <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter">filter</a>的对立面。只需返回一个 1 项元素数组以保留该项,返回一个多元素数组以添加项,或返回一个 0 项元素数组以删除该项。</p>

<pre><code>// Let's say we want to remove all the negative numbers and split the odd numbers into an even number and a 1
let a = [5, 4, -3, 20, 17, -33, -4, 18]
Expand Down
Loading