From b9afb23d12dcae1e09f8d04c72143c5ddaa34aea Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Fri, 16 Jul 2021 16:27:00 -0400 Subject: delete conflicting/orphaned docs (zh-CN) (#1412) * delete conflicting docs (zh-CN) * and redirects * do orphaned as well * fix * remove more orphans * revert orphaned docs that can identify origin * move orphaned docs to current loc * adjust slug path * fix redirect change from rebase Co-authored-by: Irvin --- .../typed_array_invalid_arguments/index.html | 77 ----- .../global_objects/array/prototype/index.html | 179 ----------- .../asyncfunction/prototype/index.html | 58 ---- .../global_objects/asynciterator/index.html | 120 -------- .../global_objects/map/@@iterator/index.html | 102 ------- .../global_objects/map/@@species/index.html | 68 ----- .../global_objects/map/@@tostringtag/index.html | 96 ------ .../reference/global_objects/map/clear/index.html | 77 ----- .../reference/global_objects/map/delete/index.html | 80 ----- .../global_objects/map/entries/index.html | 73 ----- .../global_objects/map/foreach/index.html | 110 ------- .../reference/global_objects/map/get/index.html | 82 ----- .../reference/global_objects/map/has/index.html | 121 -------- .../reference/global_objects/map/index.html | 337 --------------------- .../reference/global_objects/map/keys/index.html | 80 ----- .../reference/global_objects/map/map/index.html | 58 ---- .../reference/global_objects/map/set/index.html | 97 ------ .../reference/global_objects/map/size/index.html | 78 ----- .../reference/global_objects/map/values/index.html | 113 ------- .../global_objects/weakset/clear/index.html | 95 ------ .../operators/pipeline_operator/index.html | 76 ----- 21 files changed, 2177 deletions(-) delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/array/prototype/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/asynciterator/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@iterator/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@species/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@tostringtag/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/clear/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/delete/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/entries/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/foreach/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/get/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/has/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/keys/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/map/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/set/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/size/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/map/values/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/global_objects/weakset/clear/index.html delete mode 100644 files/zh-cn/orphaned/web/javascript/reference/operators/pipeline_operator/index.html (limited to 'files/zh-cn/orphaned/web/javascript/reference') diff --git a/files/zh-cn/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html b/files/zh-cn/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html deleted file mode 100644 index d53c093683..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: 'TypeError: invalid arguments' -slug: orphaned/Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments -tags: - - JavaScript - - 类型错误 - - 错误提示 -translation_of: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments -original_slug: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments ---- -
{{jsSidebar("Errors")}}
- -

错误提示

- -
TypeError: invalid arguments (Firefox)
- -

错误类型

- -

{{jsxref("TypeError")}}

- -

哪里出错了?

- -

类型化数组(Typed array) 的构造器可以通过接收以下类型的参数中的一种

- - - -

来创建一个新的类型化数组。其他类型的构造器参数都无法创建合法的类型化数组。

- -

示例

- -

类型化数组——例如  {{jsxref("Uint8Array")}} ——无法通过字符串创建。实际上,字符串根本不能出现在类型化数组中。

- -
var ta = new Uint8Array("nope");
-// TypeError: invalid arguments
-
- -

创建一个合法的 {{jsxref("Uint8Array")}} 对象的不同方式:

- -
// From a length
-var uint8 = new Uint8Array(2);
-uint8[0] = 42;
-console.log(uint8[0]); // 42
-console.log(uint8.length); // 2
-console.log(uint8.BYTES_PER_ELEMENT); // 1
-
-// From an array
-var arr = new Uint8Array([21,31]);
-console.log(arr[1]); // 31
-
-// From another TypedArray
-var x = new Uint8Array([21, 31]);
-var y = new Uint8Array(x);
-console.log(y[0]); // 21
-
-// From an ArrayBuffer
-var buffer = new ArrayBuffer(8);
-var z = new Uint8Array(buffer, 1, 4);
-
-// From an iterable
-var iterable = function*(){ yield* [1,2,3]; }();
-var uint8 = new Uint8Array(iterable);
-// Uint8Array[1, 2, 3]
-
- -

相关内容

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/array/prototype/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/array/prototype/index.html deleted file mode 100644 index 24d05f338a..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/array/prototype/index.html +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Array.prototype -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype -tags: - - Array.prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Array/prototype -original_slug: Web/JavaScript/Reference/Global_Objects/Array/prototype ---- -
{{JSRef}}
- -

Array.prototype  属性表示 {{jsxref("Array")}} 构造函数的原型,并允许您向所有Array对象添加新的属性和方法。

- -
/*
-如果JavaScript本身不提供 first() 方法,
-添加一个返回数组的第一个元素的新方法。
-*/
-
-if(!Array.prototype.first) {
-    Array.prototype.first = function() {
-        console.log(`如果JavaScript本身不提供 first() 方法,
-添加一个返回数组的第一个元素的新方法。`);
-        return this[0];
-    }
-}
-
- -

描述

- -

{{jsxref("Array")}}实例继承自 Array.prototype 。与所有构造函数一样,您可以更改构造函数的原型对象,以对所有 {{jsxref("Array")}} 实例进行更改。例如,可以添加新方法和属性以扩展所有Array对象。这用于 {{Glossary("Polyfill", "polyfilling")}}, 例如。

- -

鲜为人知的事实:Array.prototype 本身也是一个 {{jsxref("Array")}}。

- -
Array.isArray(Array.prototype);
-// true
-
- -

{{js_property_attributes(0, 0, 0)}}

- -

属性

- -
-
Array.prototype.constructor
-
所有的数组实例都继承了这个属性,它的值就是 {{jsxref("Array")}},表明了所有的数组都是由 {{jsxref("Array")}} 构造出来的。
-
{{jsxref("Array.prototype.length")}}
-
上面说了,因为 Array.prototype 也是个数组,所以它也有 length 属性,这个值为 0,因为它是个空数组。
-
- -

方法

- -

会改变自身的方法

- -

下面的这些方法会改变调用它们的对象自身的值:

- -
-
{{jsxref("Array.prototype.copyWithin()")}} {{experimental_inline}}
-
在数组内部,将一段元素序列拷贝到另一段元素序列上,覆盖原有的值。
-
{{jsxref("Array.prototype.fill()")}} {{experimental_inline}}
-
将数组中指定区间的所有元素的值,都替换成某个固定的值。
-
{{jsxref("Array.prototype.pop()")}}
-
删除数组的最后一个元素,并返回这个元素。
-
{{jsxref("Array.prototype.push()")}}
-
在数组的末尾增加一个或多个元素,并返回数组的新长度。
-
{{jsxref("Array.prototype.reverse()")}}
-
颠倒数组中元素的排列顺序,即原先的第一个变为最后一个,原先的最后一个变为第一个。
-
{{jsxref("Array.prototype.shift()")}}
-
删除数组的第一个元素,并返回这个元素。
-
{{jsxref("Array.prototype.sort()")}}
-
对数组元素进行排序,并返回当前数组。
-
{{jsxref("Array.prototype.splice()")}}
-
在任意的位置给数组添加或删除任意个元素。
-
{{jsxref("Array.prototype.unshift()")}}
-
在数组的开头增加一个或多个元素,并返回数组的新长度。
-
- -

不会改变自身的方法

- -

下面的这些方法绝对不会改变调用它们的对象的值,只会返回一个新的数组或者返回一个其它的期望值。

- -
-
{{jsxref("Array.prototype.concat()")}}
-
返回一个由当前数组和其它若干个数组或者若干个非数组值组合而成的新数组。
-
{{jsxref("Array.prototype.includes()")}} {{experimental_inline}}
-
判断当前数组是否包含某指定的值,如果是返回 true,否则返回 false
-
{{jsxref("Array.prototype.join()")}}
-
连接所有数组元素组成一个字符串。
-
{{jsxref("Array.prototype.slice()")}}
-
抽取当前数组中的一段元素组合成一个新数组。
-
{{jsxref("Array.prototype.toSource()")}} {{non-standard_inline}}
-
返回一个表示当前数组字面量的字符串。遮蔽了原型链上的 {{jsxref("Object.prototype.toSource()")}} 方法。
-
{{jsxref("Array.prototype.toString()")}}
-
返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的 {{jsxref("Object.prototype.toString()")}} 方法。
-
{{jsxref("Array.prototype.toLocaleString()")}}
-
返回一个由所有数组元素组合而成的本地化后的字符串。遮蔽了原型链上的 {{jsxref("Object.prototype.toLocaleString()")}} 方法。
-
{{jsxref("Array.prototype.indexOf()")}}
-
返回数组中第一个与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
-
{{jsxref("Array.prototype.lastIndexOf()")}}
-
返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
-
- -

遍历方法

- -

在下面的众多遍历方法中,有很多方法都需要指定一个回调函数作为参数。在每一个数组元素都分别执行完回调函数之前,数组的length属性会被缓存在某个地方,所以,如果你在回调函数中为当前数组添加了新的元素,那么那些新添加的元素是不会被遍历到的。此外,如果在回调函数中对当前数组进行了其它修改,比如改变某个元素的值或者删掉某个元素,那么随后的遍历操作可能会受到未预期的影响。总之,不要尝试在遍历过程中对原数组进行任何修改,虽然规范对这样的操作进行了详细的定义,但为了可读性和可维护性,请不要这样做。

- -
-
{{jsxref("Array.prototype.forEach()")}}
-
为数组中的每个元素执行一次回调函数。
-
{{jsxref("Array.prototype.entries()")}} {{experimental_inline}}
-
返回一个数组迭代器对象,该迭代器会包含所有数组元素的键值对。
-
{{jsxref("Array.prototype.every()")}}
-
如果数组中的每个元素都满足测试函数,则返回 true,否则返回 false。
-
{{jsxref("Array.prototype.some()")}}
-
如果数组中至少有一个元素满足测试函数,则返回 true,否则返回 false。
-
{{jsxref("Array.prototype.filter()")}}
-
将所有在过滤函数中返回 true 的数组元素放进一个新数组中并返回。
-
{{jsxref("Array.prototype.find()")}} {{experimental_inline}}
-
找到第一个满足测试函数的元素并返回那个元素的值,如果找不到,则返回 undefined
-
{{jsxref("Array.prototype.findIndex()")}} {{experimental_inline}}
-
找到第一个满足测试函数的元素并返回那个元素的索引,如果找不到,则返回 -1
-
{{jsxref("Array.prototype.keys()")}} {{experimental_inline}}
-
返回一个数组迭代器对象,该迭代器会包含所有数组元素的键。
-
{{jsxref("Array.prototype.map()")}}
-
返回一个由回调函数的返回值组成的新数组。
-
{{jsxref("Array.prototype.reduce()")}}
-
从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
-
{{jsxref("Array.prototype.reduceRight()")}}
-
从右到左为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
-
{{jsxref("Array.prototype.values()")}} {{experimental_inline}}
-
返回一个数组迭代器对象,该迭代器会包含所有数组元素的值。
-
{{jsxref("Array.prototype.@@iterator()", "Array.prototype[@@iterator]()")}} {{experimental_inline}}
-
和上面的 values() 方法是同一个函数。
-
- -

通用方法

- -

在 JavaScript 中,很多的数组方法被故意设计成是通用的。也就是说,那些看起来像是数组的对象(类数组对象),即拥有一个 length 属性,以及对应的索引属性(也就是数字类型的属性,比如 obj[5])的非数组对象也是可以调用那些数组方法的。其中一些数组方法,比如说 {{jsxref("Array.join", "join")}} 方法,它们只会单纯的读取当前对象的 length 属性和索引属性的值,并不会尝试去改变这些属性的值。而另外一些数组方法,比如说 {{jsxref("Array.reverse", "reverse")}} 方法,它们会尝试修改那些属性的值,因此,如果当前对象是个 {{jsxref("String")}} 对象,那么这些方法在执行时就会报错,因为字符串对象的 length 属性和索引属性都是只读的。

- -

规范

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition.
{{SpecName('ES5.1', '#sec-15.4.3.1', 'Array.prototype')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype', 'Array.prototype')}}{{Spec2('ES6')}}
- -

浏览器兼容性

- -
-
- - -

{{Compat("javascript.builtins.Array.prototype")}}

-
-
- -

相关链接

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html deleted file mode 100644 index 2173e49cd6..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: AsyncFunction.prototype -slug: orphaned/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype -translation_of: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype -original_slug: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype ---- -
{{JSRef}}
- -

AsyncFunction.prototype 属性表示 {{jsxref("AsyncFunction")}} 的原型对象。

- -

描述

- -

{{jsxref("AsyncFunction")}} 对象继承自 AsyncFunction.prototypeAsyncFunction.prototype 不能被修改。

- -

属性

- -
-
AsyncFunction.constructor
-
默认值为 {{jsxref("AsyncFunction")}}。
-
AsyncFunction.prototype[@@toStringTag]
-
返回 "AsyncFunction"。
-
- -

规范

- - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-async-function-constructor-prototype', 'AsyncFunction.prototype')}}{{Spec2('ESDraft')}}最初定义在ES2017.
- -

兼容性

- -
-
- - -

{{Compat("javascript.builtins.AsyncFunction.prototype")}}

-
-
- -

参见

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/asynciterator/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/asynciterator/index.html deleted file mode 100644 index aa406b37c2..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/asynciterator/index.html +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: AsyncIterator -slug: orphaned/Web/JavaScript/Reference/Global_Objects/AsyncIterator -tags: - - 异步迭代器 - - 类 -translation_of: Web/JavaScript/Reference/Global_Objects/AsyncIterator -original_slug: Web/JavaScript/Reference/Global_Objects/AsyncIterator ---- -

{{JSRef}}{{Draft}}

- -

AsyncIterator 全局对象是一个提供辅助方法的抽象类,与暴露在{{JSxRef("Array")}} 实例上的那些类似。

- -

构造函数

- -
-
{{JSxRef("AsyncIterator.AsyncIterator", "AsyncIterator()")}} 
-
一个抽象构造函数,仅能够通过 {{JSxRef("Operators/super", "super()")}} 来调用。
-
- -

属性

- -
-
AsyncIterator.prototype
-
%AsyncIteratorPrototype% 内部对象。
-
- -

方法

- -
-
{{JSxRef("AsyncIterator.from()")}} 
-
等同于在传入的对象上调用 @@asyncIterator 。
-
- -

AsyncIterator 原型

- -

原型属性

- -
-
AsyncIterator.prototype.constructor
-
指定创建对的象原型的函数.
-
AsyncIterator.prototype[@@toStringTag] 
-
字符串 "Iterator".
-
- -

原型方法

- -
-
{{JSxRef("AsyncIterator.prototype.map()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.filter()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.take()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.drop()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.asIndexedPairs()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.flatMap()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.reduce()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.toArray()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.forEach()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.some()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.every()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.find()")}} 
-
...
-
{{JSxRef("AsyncIterator.prototype.@@iterator()", "AsyncIterator.prototype[@@iterator]()")}}
-
返回该 AsyncIterator 实例。
-
- -

实现方法

- -
-
{{JSxRef("AsyncIterator.prototype.next()", "<implementation>.prototype.next()")}}
-
获取 AsyncIterator 中的下一项
-
{{JSxRef("AsyncIterator.prototype.return()", "<implementation>.prototype.next()")}}{{Optional_Inline}}
-
返回给出的值,并结束迭代。
-
{{JSxRef("AsyncIterator.prototype.throw()", "<implementation>.prototype.next()")}}{{Optional_Inline}}
-
抛出一个迭代器错误(同时也终止了迭代器,除非是在该迭代器内部被捕获)。
-
- -

规范

- - - - - - - - - - - - - - - - -
SpecificationStatusComment
ESNext Iterator Helpers ProposalStage 2 DraftInitial definition
- -

浏览器兼容性

- - - -

{{Compat("javascript.builtins.AsyncIterator")}}

- -

另请参阅

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@iterator/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@iterator/index.html deleted file mode 100644 index 9a93339548..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@iterator/index.html +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: Map.prototype[@@iterator]() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/@@iterator -tags: - - ECMAScript 2015 - - Iterator - - JavaScript - - Map - - Method - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/Map/@@iterator -original_slug: Web/JavaScript/Reference/Global_Objects/Map/@@iterator ---- -
{{JSRef}}
- -

@@iterator 属性的初始值与 {{jsxref("Map.prototype.entries()", "entries")}} 属性的初始值是同一个函数对象。

- -
{{EmbedInteractiveExample("pages/js/map-prototype-@@iterator.html")}}
- - - -

语法

- -
myMap[Symbol.iterator]
- -

返回值

- -

map 的 iterator 函数默认就是 {{jsxref("Map.prototype.entries()", "entries()")}} 函数。

- -

示例

- -

使用 [@@iterator]()

- -
var myMap = new Map();
-myMap.set('0', 'foo');
-myMap.set(1, 'bar');
-myMap.set({}, 'baz');
-
-var mapIter = myMap[Symbol.iterator]();
-//返回的其实是个generator
-console.log(mapIter.next().value); // ["0", "foo"]
-console.log(mapIter.next().value); // [1, "bar"]
-console.log(mapIter.next().value); // [Object, "baz"]
-
- -

for..of中使用[@@iterator]() 

- -
var myMap = new Map();
-myMap.set('0', 'foo');
-myMap.set(1, 'bar');
-myMap.set({}, 'baz');
-
-for (const entry of myMap) {
-  console.log(entry);
-}
-// ["0", "foo"]
-// [1, "bar"]
-// [{}, "baz"]
-
-for (var v of myMap) {
-  console.log(v);
-}
-
-// 0: foo
-// 1: bar
-// [Object]: baz
- -

规范

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-map.prototype-@@iterator', 'Map.prototype[@@iterator]()')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-map.prototype-@@iterator', 'Map.prototype[@@iterator]()')}}{{Spec2('ESDraft')}} 
- -

浏览器兼容

- - - -

{{Compat("javascript.builtins.Map.@@iterator")}}

- -

另见

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@species/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@species/index.html deleted file mode 100644 index c451e94285..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@species/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: get Map[@@species] -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/@@species -translation_of: Web/JavaScript/Reference/Global_Objects/Map/@@species -original_slug: Web/JavaScript/Reference/Global_Objects/Map/@@species ---- -
{{JSRef}}
- -

 Map[@@species] 访问器属性会返回一个 Map 构造函数.

- -

语法

- -
Map[Symbol.species]
-
- -

描述

- -

The species accessor property returns the default constructor for Map objects. Subclass constructors may over-ride it to change the constructor assignment.

- -

案例

- -

The species property returns the default constructor function, which is the Map constructor for Map objects:

- -
Map[Symbol.species]; // function Map()
- -

In a derived collection object (e.g. your custom map MyMap), the MyMap species is the MyMap constructor. However, you might want to overwrite this, in order to return parent Map objects in your derived class methods:

- -
class MyMap extends Map {
-  // 重写覆盖 MyMap species to the parent Map constructor
-  static get [Symbol.species]() { return Map; }
-}
- -

规范

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-get-map-@@species', 'get Map [ @@species ]')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-get-map-@@species', 'get Map [ @@species ]')}}{{Spec2('ESDraft')}} 
- -

浏览器兼容性

- -
- - -

{{Compat("javascript.builtins.Map.@@species")}}

-
- -

相关链接

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@tostringtag/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@tostringtag/index.html deleted file mode 100644 index f592aedbf4..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/@@tostringtag/index.html +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Map.prototype[@@toStringTag] -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/@@toStringTag -translation_of: Web/JavaScript/Reference/Global_Objects/Map/@@toStringTag -original_slug: Web/JavaScript/Reference/Global_Objects/Map/@@toStringTag ---- -
{{JSRef}}
- -

 Map[@@toStringTag] 的初始值是"Map".

- -
{{js_property_attributes(0,0,1)}}
- -

语法

- -
Map[Symbol.toStringTag]
- -

示例

- -
Object.prototype.toString.call(new Map()) // "[object Map]"
-
- -

规范

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-map.prototype-@@tostringtag', 'Map.prototype[@@toStringTag]')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-map.prototype-@@tostringtag', 'Map.prototype[@@toStringTag]')}}{{Spec2('ESDraft')}} 
- -

浏览器兼容

- -

{{CompatibilityTable}} 

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatChrome(44.0) }}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{ CompatNo }}{{ CompatChrome(44.0) }}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(44.0)}}
-
diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/clear/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/clear/index.html deleted file mode 100644 index b23ce95ce2..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/clear/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Map.prototype.clear() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/clear -tags: - - ECMAScript 2015 - - JavaScript - - Map -translation_of: Web/JavaScript/Reference/Global_Objects/Map/clear -original_slug: Web/JavaScript/Reference/Global_Objects/Map/clear ---- -
{{JSRef}}
- -

clear()方法会移除Map对象中的所有元素。

- -
{{EmbedInteractiveExample("pages/js/map-prototype-clear.html")}}
- - - -

语法

- -
myMap.clear();
-
- -

返回值

- -

{{jsxref("undefined")}}.

- -

示例

- -

调用clear方法

- -
var myMap = new Map();
-myMap.set("bar", "baz");
-myMap.set(1, "foo");
-
-myMap.size;       // 2
-myMap.has("bar"); // true
-
-myMap.clear();
-
-myMap.size;       // 0
-myMap.has("bar")  // false
-
- -

规范

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-map.prototype.clear', 'Map.prototype.clear')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-map.prototype.clear', 'Map.prototype.clear')}}{{Spec2('ESDraft')}} 
- -

浏览器兼容

- - - -

{{Compat("javascript.builtins.Map.clear")}}

- -

相关链接

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/delete/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/delete/index.html deleted file mode 100644 index 5b4d1772fd..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/delete/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Map.prototype.delete() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/delete -tags: - - ECMAScript 2015 - - JavaScript - - Map - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Map/delete -original_slug: Web/JavaScript/Reference/Global_Objects/Map/delete ---- -
{{JSRef}}
- -

 delete() 方法用于移除 Map 对象中指定的元素。

- -
{{EmbedInteractiveExample("pages/js/map-prototype-delete.html")}}
- - - -

语法

- -
myMap.delete(key);
- -

参数

- -
-
key
-
必须。从 Map 对象中移除的元素的键。
-
- -

返回值

- -
-
Boolean
-
如果 Map 对象中存在该元素,则移除它并返回 true;否则如果该元素不存在则返回 false
-
- -

示例

- -

使用 delete 方法

- -
var myMap = new Map();
-myMap.set("bar", "foo");
-
-myMap.delete("bar"); // 返回 true。成功地移除元素
-myMap.has("bar");    // 返回 false。"bar" 元素将不再存在于 Map 实例中
-
- -

规范

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-map.prototype.delete', 'Map.prototype.delete')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-map.prototype.delete', 'Map.prototype.delete')}}{{Spec2('ESDraft')}} 
- -

浏览器兼容性

- -

{{Compat("javascript.builtins.Map.delete")}}

- -

相关链接

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/entries/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/entries/index.html deleted file mode 100644 index 578ddb51ee..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/entries/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Map.prototype.entries() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/entries -tags: - - Map -translation_of: Web/JavaScript/Reference/Global_Objects/Map/entries -original_slug: Web/JavaScript/Reference/Global_Objects/Map/entries ---- -
{{JSRef}}
- -

entries() 方法返回一个新的包含 [key, value] 对的 Iterator 对象,返回的迭代器的迭代顺序与 Map 对象的插入顺序相同。

- -

{{EmbedInteractiveExample("pages/js/map-prototype-entries.html")}}

- -

语法

- -
myMap.entries()
-
- -

返回值

- -

一个新的 {{jsxref("Map")}} 迭代器对象.

- -

示例

- -

entries()的使用

- -
var myMap = new Map();
-myMap.set("0", "foo");
-myMap.set(1, "bar");
-myMap.set({}, "baz");
-
-var mapIter = myMap.entries();
-
-console.log(mapIter.next().value); // ["0", "foo"]
-console.log(mapIter.next().value); // [1, "bar"]
-console.log(mapIter.next().value); // [Object, "baz"]
-
- -

规范

- - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-map.prototype.entries', 'Map.prototype.entries')}}{{Spec2('ESDraft')}}
{{SpecName('ES2015', '#sec-map.prototype.entries', 'Map.prototype.entries')}}{{Spec2('ES2015')}}Initial definition.
- -

浏览器兼容性

- -

{{Compat("javascript.builtins.Map.entries")}}

- -

相关链接

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/foreach/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/foreach/index.html deleted file mode 100644 index b15bd716d9..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/foreach/index.html +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Map.prototype.forEach() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/forEach -tags: - - ECMAScript 2015 - - JavaScript - - Map - - Method - - Prototype - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/Map/forEach -original_slug: Web/JavaScript/Reference/Global_Objects/Map/forEach ---- -
{{JSRef}}
- -

forEach() 方法按照插入顺序依次对 Map 中每个键/值对执行一次给定的函数

- -
{{EmbedInteractiveExample("pages/js/map-prototype-foreach.html")}}
- - - -

语法

- -
myMap.forEach(callback([value][,key][,map])[, thisArg])
- -

参数

- -
-
callback
-
-

myMap 中每个元素所要执行的函数。它具有如下的参数

- -
-
value {{Optional_Inline}}
-
每个迭代的值。
-
key {{Optional_Inline}}
-
每个迭代的键。
-
map {{Optional_Inline}}
-
被迭代的map(上文语法框中的 myMap)。
-
-
-
thisArg {{Optional_Inline}}
-
callback 执行中使用的 this 的值。
-
- -

返回值

- -

{{jsxref("undefined")}}.

- -

描述

- -

forEach 方法会对map中每个真实存在的键执行一次给定的 callback 函数。它不会对被删除的键执行函数。然而,它会对每个值为 undefined 的键执行函数。

- -

callback 接收三个参数

- - - -

如果 forEach 中含有 thisArg 参数,那么每次 callback 被调用时,都会被用作 this 的值。否则,undefined 将会被用作 this 的值。按照函数观察到 this 的常用规则callback 函数最终可观察到 this 值。

- -

每个值只被访问一次,除非它被删除了或者在 forEach 结束前被改变了。callback 不会对在被访问前就删除的元素执行。在 forEach 结束前被添加的元素将会被访问。

- -

forEach 会对 Map 对象中的每个元素执行一次 callback。它不会返回值。

- -

示例

- -

输出一个 Map 对象中的内容

- -

以下的代码在每行中打印一个 Map 对象中的元素

- -
function logMapElements(value, key, map) {
-    console.log(`map.get('${key}') = ${value}`)
-}
-new Map([['foo', 3], ['bar', {}], ['baz', undefined]]).forEach(logMapElements)
-// logs:
-// "map.get('foo') = 3"
-// "map.get('bar') = [object Object]"
-// "map.get('baz') = undefined"
-
- -

规范

- - - - - - - - - - - - -
规范
{{SpecName('ESDraft', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}}
- -

浏览器兼容

- - - -

{{Compat("javascript.builtins.Map.forEach")}}

- -

参见

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/get/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/get/index.html deleted file mode 100644 index e9f46c82c5..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/get/index.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Map.prototype.get() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/get -tags: - - ECMAScript 2015 - - JavaScript - - Map - - Method - - Prototype - - 方法 -translation_of: Web/JavaScript/Reference/Global_Objects/Map/get -original_slug: Web/JavaScript/Reference/Global_Objects/Map/get ---- -
{{JSRef}}
- -

get() 方法返回某个 Map 对象中的一个指定元素。

- -
{{EmbedInteractiveExample("pages/js/map-prototype-get.html")}}
- - - -

语法

- -
myMap.get(key);
- -

参数

- -
-
key
-
必须参数,也是它唯一的参数,要从目标 Map 对象中获取的元素的键。
-
- -

返回值

- -

返回一个 Map 对象中与指定键相关联的值,如果找不到这个键则返回 undefined

- -

示例

- -

使用 get 方法

- -
var myMap = new Map();
-myMap.set("bar", "foo");
-
-myMap.get("bar");  // 返回 "foo"
-myMap.get("baz");  // 返回 undefined
-
- -

规范

- - - - - - - - - - - - - - - - - - - -
规范状态备注
{{SpecName('ES2015', '#sec-map.prototype.get', 'Map.prototype.get')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-map.prototype.get', 'Map.prototype.get')}}{{Spec2('ESDraft')}} 
- -

浏览器兼容性

- - - -

{{Compat("javascript.builtins.Map.get")}}

- -

参见

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/has/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/has/index.html deleted file mode 100644 index b71c051a98..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/has/index.html +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Map.prototype.has() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/has -tags: - - ECMAScript 2015 - - JavaScript - - Map - - Method - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/Map/has -original_slug: Web/JavaScript/Reference/Global_Objects/Map/has ---- -
{{JSRef}}
- -

方法has() 返回一个bool值,用来表明map 中是否存在指定元素.

- -

语法

- -
myMap.has(key);
- -

参数

- -
-
key
-
必填. 用来检测是否存在指定元素的键值.
-
- -

返回值

- -
-
Boolean
-
如果指定元素存在于Map中,则返回true。其他情况返回false
-
- -

案例

- -

使用has方法

- -
var myMap = new Map();
-myMap.set("bar", "foo");
-
-myMap.has("bar");  // returns true
-myMap.has("baz");  // returns false
-
- -

规范列表

- - - - - - - - - - - - - - -
规范名称StatusComment
{{SpecName('ES6', '#sec-map.prototype.has', 'Map.prototype.has')}}{{Spec2('ES6')}}Initial definition.
- -

浏览器兼容性

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
浏览器Chrome谷歌Firefox (Gecko)火狐Internet ExplorerOperaSafari
兼容版本38{{CompatGeckoDesktop("13.0")}}11257.1
-
- -
- - - - - - - - - - - - - - - - - - - - - -
浏览器AndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
兼容版本{{CompatNo}}38{{CompatGeckoMobile("13.0")}}{{CompatNo}}{{CompatNo}}8
-
- -

相关链接

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/index.html deleted file mode 100644 index d9b95fd745..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/index.html +++ /dev/null @@ -1,337 +0,0 @@ ---- -title: Map -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map -tags: - - ECMAScript6 - - JavaScript - - Map -translation_of: Web/JavaScript/Reference/Global_Objects/Map -original_slug: Web/JavaScript/Reference/Global_Objects/Map ---- -
-
{{JSRef}}
-
- -

Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者{{Glossary("Primitive", "原始值")}}) 都可以作为一个键或一个值。

- -
-
- -

描述

- -

一个Map对象在迭代时会根据对象中元素的插入顺序来进行 — 一个  {{jsxref("Statements/for...of", "for...of")}} 循环在每次迭代后会返回一个形式为[key,value]的数组。

- -

键的相等(Key equality)

- - - -

Objects 和 maps 的比较

- -

{{jsxref("Object", "Objects")}} 和 Maps 类似的是,它们都允许你按键存取一个值、删除键、检测一个键是否绑定了值。因此(并且也没有其他内建的替代方式了)过去我们一直都把对象当成 Maps 使用。不过 Maps 和 Objects 有一些重要的区别,在下列情况里使用 Map 会是更好的选择:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MapObject
意外的键Map 默认情况不包含任何键。只包含显式插入的键。 -

一个 Object 有一个原型, 原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。

- -
-

注意: 虽然 ES5 开始可以用 Object.create(null) 来创建一个没有原型的对象,但是这种用法不太常见。

-
-
键的类型一个 Map的键可以是任意值,包括函数、对象或任意基本类型。一个Object 的键必须是一个 {{jsxref("String")}} 或是{{jsxref("Symbol")}}。
键的顺序 -

Map 中的 key 是有序的。因此,当迭代的时候,一个 Map 对象以插入的顺序返回键值。

-
-

一个 Object 的键是无序的

- -
-

注意:自ECMAScript 2015规范以来,对象确实保留了字符串和Symbol键的创建顺序; 因此,在只有字符串键的对象上进行迭代将按插入顺序产生键。

-
-
Size Map 的键值对个数可以轻易地通过{{jsxref("Map.prototype.size", "size")}} 属性获取Object 的键值对个数只能手动计算
迭代Mapiterable 的,所以可以直接被迭代。迭代一个Object需要以某种方式获取它的键然后才能迭代。
性能 -

在频繁增删键值对的场景下表现更好。

-
-

在频繁添加和删除键值对的场景下未作出优化。

-
- -

构造函数

- -
-
{{jsxref("Global_Objects/Map/Map", "Map()")}}
-
创建 Map 对象
-
- -

属性

- -
-
Map.length
-
属性 length 的值为 0 。
- 想要计算一个Map 中的条目数量, 使用 {{jsxref("Map.prototype.size")}}.
-
{{jsxref("Map.@@species", "get Map[@@species]")}}
-
本构造函数用于创建派生对象。
-
{{jsxref("Map.prototype")}}
-
表示 Map 构造器的原型。 允许添加属性从而应用于所有的 Map 对象。
-
- -

Map 实例

- -

所有的 Map 对象实例都会继承 {{jsxref("Map.prototype")}}。

- -

属性

- -

{{page('zh-CN/Web/JavaScript/Reference/Global_Objects/Map/prototype','属性')}}

- -

方法

- -

{{page('zh-CN/Web/JavaScript/Reference/Global_Objects/Map/prototype','方法')}}

- -

示例

- -

使用 Map 对象

- -
let myMap = new Map();
-
-let keyObj = {};
-let keyFunc = function() {};
-let keyString = 'a string';
-
-// 添加键
-myMap.set(keyString, "和键'a string'关联的值");
-myMap.set(keyObj, "和键keyObj关联的值");
-myMap.set(keyFunc, "和键keyFunc关联的值");
-
-myMap.size; // 3
-
-// 读取值
-myMap.get(keyString);    // "和键'a string'关联的值"
-myMap.get(keyObj);       // "和键keyObj关联的值"
-myMap.get(keyFunc);      // "和键keyFunc关联的值"
-
-myMap.get('a string');   // "和键'a string'关联的值"
-                         // 因为keyString === 'a string'
-myMap.get({});           // undefined, 因为keyObj !== {}
-myMap.get(function() {}); // undefined, 因为keyFunc !== function () {}
- -

将 NaN 作为 Map 的键

- -

NaN 也可以作为Map对象的键。虽然 NaN 和任何值甚至和自己都不相等(NaN !== NaN 返回true),但下面的例子表明,NaN作为Map的键来说是没有区别的:

- -
let myMap = new Map();
-myMap.set(NaN, "not a number");
-
-myMap.get(NaN); // "not a number"
-
-let otherNaN = Number("foo");
-myMap.get(otherNaN); // "not a number"
-
- -

使用 for..of 方法迭代 Map

- -

Map可以使用for..of循环来实现迭代:

- -
let myMap = new Map();
-myMap.set(0, "zero");
-myMap.set(1, "one");
-for (let [key, value] of myMap) {
-  console.log(key + " = " + value);
-}
-// 将会显示两个log。一个是"0 = zero"另一个是"1 = one"
-
-for (let key of myMap.keys()) {
-  console.log(key);
-}
-// 将会显示两个log。 一个是 "0" 另一个是 "1"
-
-for (let value of myMap.values()) {
-  console.log(value);
-}
-// 将会显示两个log。 一个是 "zero" 另一个是 "one"
-
-for (let [key, value] of myMap.entries()) {
-  console.log(key + " = " + value);
-}
-// 将会显示两个log。 一个是 "0 = zero" 另一个是 "1 = one"
- -

使用 forEach() 方法迭代 Map

- -

Map也可以通过forEach()方法迭代:

- -
myMap.forEach(function(value, key) {
-  console.log(key + " = " + value);
-})
-// 将会显示两个logs。 一个是 "0 = zero" 另一个是 "1 = one"
-
- -

Map 与数组的关系

- -
let kvArray = [["key1", "value1"], ["key2", "value2"]];
-
-// 使用常规的Map构造函数可以将一个二维键值对数组转换成一个Map对象
-let myMap = new Map(kvArray);
-
-myMap.get("key1"); // 返回值为 "value1"
-
-// 使用Array.from函数可以将一个Map对象转换成一个二维键值对数组
-console.log(Array.from(myMap)); // 输出和kvArray相同的数组
-
-// 更简洁的方法来做如上同样的事情,使用展开运算符
-console.log([...myMap]);
-
-// 或者在键或者值的迭代器上使用Array.from,进而得到只含有键或者值的数组
-console.log(Array.from(myMap.keys())); // 输出 ["key1", "key2"]
-
- -

复制或合并 Maps

- -

Map 能像数组一样被复制:

- -
let original = new Map([
-  [1, 'one']
-]);
-
-let clone = new Map(original);
-
-console.log(clone.get(1)); // one
-console.log(original === clone); // false. 浅比较 不为同一个对象的引用
-
- -
-

重要:请记住,数据本身未被克隆。

-
- -

Map对象间可以进行合并,但是会保持键的唯一性。

- -
let first = new Map([
-  [1, 'one'],
-  [2, 'two'],
-  [3, 'three'],
-]);
-
-let second = new Map([
-  [1, 'uno'],
-  [2, 'dos']
-]);
-
-// 合并两个Map对象时,如果有重复的键值,则后面的会覆盖前面的。
-// 展开运算符本质上是将Map对象转换成数组。
-let merged = new Map([...first, ...second]);
-
-console.log(merged.get(1)); // uno
-console.log(merged.get(2)); // dos
-console.log(merged.get(3)); // three
- -

Map对象也能与数组合并:

- -
let first = new Map([
-  [1, 'one'],
-  [2, 'two'],
-  [3, 'three'],
-]);
-
-let second = new Map([
-  [1, 'uno'],
-  [2, 'dos']
-]);
-
-// Map对象同数组进行合并时,如果有重复的键值,则后面的会覆盖前面的。
-let merged = new Map([...first, ...second, [1, 'eins']]);
-
-console.log(merged.get(1)); // eins
-console.log(merged.get(2)); // dos
-console.log(merged.get(3)); // three
- -

使用说明

- -

请注意!为Map设置对象属性也是可以的,但是可能引起大量的混乱。

- -

所以,你还是可以这样做...

- -
let wrongMap = new Map()
-wrongMap['bla'] = 'blaa'
-wrongMap['bla2'] = 'blaaa2'
-
-console.log(wrongMap)  // Map { bla: 'blaa', bla2: 'blaaa2' }
-
- -

...但是,这样做的话,它的行为会不符合预期:

- -
wrongMap.has('bla')    // false
-wrongMap.delete('bla') // false
-console.log(wrongMap)  // Map { bla: 'blaa', bla2: 'blaaa2' }
- -

无论如何,和正确用法比较起来,几乎没有什么不同: 

- -
let myMap = new Map()
-myMap.set('bla','blaa')
-myMap.set('bla2','blaa2')
-console.log(myMap)  // Map { 'bla' => 'blaa', 'bla2' => 'blaa2' }
-
-myMap.has('bla')    // true
-myMap.delete('bla') // true
-console.log(myMap)  // Map { 'bla2' => 'blaa2' }
- -

规范

- - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-map-objects', 'Map')}}
- -

浏览器兼容性

- -

{{Compat("javascript.builtins.Map")}}

- -

相关链接

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/keys/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/keys/index.html deleted file mode 100644 index 057d5ee897..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/keys/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Map.prototype.keys() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/keys -tags: - - ECMAScript6 - - Iterator - - JavaScript - - Map - - Method - - Prototype - - 方法 -translation_of: Web/JavaScript/Reference/Global_Objects/Map/keys -original_slug: Web/JavaScript/Reference/Global_Objects/Map/keys ---- -
{{JSRef}}
- -

keys() 返回一个引用的 Iterator 对象。它包含按照顺序插入 Map 对象中每个元素的key值。

- -
{{EmbedInteractiveExample("pages/js/map-prototype-keys.html")}}
- - - -

语法

- -
myMap.keys()
- -

返回值

- -

一个存在引用关系的 {{jsxref("Map")}} iterator 对象.

- -

例子

- -

使用 keys()

- -
var myMap = new Map();
-myMap.set("0", "foo");
-myMap.set(1, "bar");
-myMap.set({}, "baz");
-
-var mapIter = myMap.keys();
-
-console.log(mapIter.next().value); // "0"
-console.log(mapIter.next().value); // 1
-console.log(mapIter.next().value); // Object
-
- -

规范

- - - - - - - - - - - - - - - - - - - -
规范状态备注
{{SpecName('ES2015', '#sec-map.prototype.keys', 'Map.prototype.keys')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-map.prototype.keys', 'Map.prototype.keys')}}{{Spec2('ESDraft')}}
- -

浏览器兼容性

- - - -

{{Compat("javascript.builtins.Map.keys")}}

- -

参见

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/map/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/map/index.html deleted file mode 100644 index 974e3a73b0..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/map/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Map() 构造函数 -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/Map -translation_of: Web/JavaScript/Reference/Global_Objects/Map/Map -original_slug: Web/JavaScript/Reference/Global_Objects/Map/Map ---- -
{{JSRef}}
- -

Map() 构造函数 创建 {{jsxref("Map")}} 对象.

- -

语法

- -
new Map([iterable])
- -

参数

- -
-
iterable
-
Iterable 可以是一个{{jsxref("Array", "数组")}}或者其他 iterable 对象,其元素为键值对(两个元素的数组,例如: [[ 1, 'one' ],[ 2, 'two' ]])。 每个键值对都会添加到新的 Map。null 会被当做 undefined。
-
- -

示例

- -
let myMap = new Map([
-  [1, 'one'],
-  [2, 'two'],
-  [3, 'three'],
-])
-
- -

Specifications

- - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-map-constructor', 'Map constructor')}}
- -

Browser compatibility

- - - -

{{Compat("javascript.builtins.Map.Map")}}

- -

See also

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/set/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/set/index.html deleted file mode 100644 index 9e7ad91ba5..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/set/index.html +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Map.prototype.set() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/set -tags: - - ECMAScript6 - - JavaScript - - Map - - Method - - Prototype - - 方法 -translation_of: Web/JavaScript/Reference/Global_Objects/Map/set -original_slug: Web/JavaScript/Reference/Global_Objects/Map/set ---- -

{{JSRef}}

- -

set() 方法为 Map 对象添加或更新一个指定了键(key)和值(value)的(新)键值对。

- -
{{EmbedInteractiveExample("pages/js/map-prototype-set.html")}}
- - - -

语法

- -
myMap.set(key, value);
- -

参数

- -
-
key
-
要添加至相应 Map 对象的元素的键。
-
value
-
要添加至相应 Map 对象的元素的值。
-
- -

返回值

- -

Map 对象

- -

示例

- -

使用 set 方法

- -
var myMap = new Map();
-
-// 将一个新元素添加到 Map 对象
-myMap.set("bar", "foo");
-myMap.set(1, "foobar");
-
-// 在Map对象中更新某个元素的值
-myMap.set("bar", "baz");
-
- -

链式使用 set 方法

- -

因为 Set() 方法返回 Map 对象本身,所以你可以像下面这样链式调用它:

- -
// Add new elements to the map with chaining.
-myMap.set('bar', 'foo')
-     .set(1, 'foobar')
-     .set(2, 'baz');
-
- -

规范

- - - - - - - - - - - - - - - - - - - -
规范状态备注
{{SpecName('ES2015', '#sec-map.prototype.set', 'Map.prototype.set')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-map.prototype.set', 'Map.prototype.set')}}{{Spec2('ESDraft')}}
- -

浏览器兼容性

- - - -

{{Compat("javascript.builtins.Map.set")}}

- -

参见

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/size/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/size/index.html deleted file mode 100644 index 585d04f70a..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/size/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Map.prototype.size -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/size -tags: - - ECMAScript 2015 - - JavaScript - - Map - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Map/size -original_slug: Web/JavaScript/Reference/Global_Objects/Map/size ---- -
{{JSRef}}
- -

size 是可访问属性,用于返回 一个{{jsxref("Map")}} 对象的成员数量。

- -

{{EmbedInteractiveExample("pages/js/map-prototype-size.html")}}

- -

这个示例源码保存在GitHub:https://github.com/mdn/interactive-examples。如果你想贡献代码,修改后在GitHub上发推送请求给我们。

- -

 

- -

描述

- -

size 属性的值是一个整数,表示 Map 对象有多少个键值对。size 是只读属性,用set 方法修改size返回 undefined,即不能改变它的值。

- -

示例

- -
var myMap = new Map();
-myMap.set("a", "alpha");
-myMap.set("b", "beta");
-myMap.set("g", "gamma");
-
-myMap.size // 3
-
- -

规范

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-get-map.prototype.size', 'Map.prototype.size')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-get-map.prototype.size', 'Map.prototype.size')}}{{Spec2('ESDraft')}} 
- -

浏览器兼容

- -

此页的兼容性表格请查阅:https://github.com/mdn/browser-compat-data 
- 如果你想更新数据,请在GitHub上给我们发推送请求。

- -
-

异常提醒

-
- - - -

相关阅读

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/values/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/values/index.html deleted file mode 100644 index 29fad63c96..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/map/values/index.html +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Map.prototype.values() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/Map/values -translation_of: Web/JavaScript/Reference/Global_Objects/Map/values -original_slug: Web/JavaScript/Reference/Global_Objects/Map/values ---- -
values() 方法返回一个新的Iterator对象。它包含按顺序插入Map对象中每个元素的value值。
- -
 
- -

语法

- -
myMap.values()
- -

返回值

- -

一个新的 Map 可迭代对象.

- -

例子

- -

使用 values()

- -
var myMap = new Map();
-myMap.set("0", "foo");
-myMap.set(1, "bar");
-myMap.set({}, "baz");
-
-var mapIter = myMap.values();
-
-console.log(mapIter.next().value); // "foo"
-console.log(mapIter.next().value); // "bar"
-console.log(mapIter.next().value); // "baz"
- -

规范

- - - - - - - - - - - - - - - - - - - -
规范状态备注
{{SpecName('ES6', '#sec-map.prototype.values', 'Map.prototype.values')}}{{Spec2('ES6')}}初始定义
{{SpecName('ESDraft', '#sec-map.prototype.values', 'Map.prototype.values')}}{{Spec2('ESDraft')}} 
- -

浏览器兼容性

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support38{{ CompatGeckoDesktop("20") }}{{CompatNo}}257.1
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}38{{ CompatGeckoMobile("20") }}{{CompatNo}}{{CompatNo}}8
-
- -

查看

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/global_objects/weakset/clear/index.html b/files/zh-cn/orphaned/web/javascript/reference/global_objects/weakset/clear/index.html deleted file mode 100644 index de4ef6da94..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/global_objects/weakset/clear/index.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: WeakSet.prototype.clear() -slug: orphaned/Web/JavaScript/Reference/Global_Objects/WeakSet/clear -tags: - - JavaScript - - Method - - WeakSet - - 废弃 -translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet/clear -original_slug: Web/JavaScript/Reference/Global_Objects/WeakSet/clear ---- -
{{JSRef}} {{obsolete_header}}
- -

clear() 方法用于删除 WeakSet 对象的所有元素,但是已经不是 ECMAScript 的一部分了。

- -

语法

- -
ws.clear();
- -

示例

- -

使用 clear方法

- -
var ws = new WeakSet();
-
-ws.add(window);
-ws.has(window);  // true
-
-ws.clear();
-
-ws.has(window); // false
-
- -

规范

- -

没有规范或草案。该方法原本计划包括在 ECMAScript 6,但是在草案 revision 28 (October 14, 2014) 被抛弃了。浏览器原先的实现不久后也被移除了,它从来不是标准的一分子。

- -

浏览器支持

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support36{{CompatNo}} [1]{{CompatNo}}23{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}} [1]{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

[1] Added to Firefox in version 34, but removed in version 46. See {{bug(1101817)}}.

- -

相关

- - diff --git a/files/zh-cn/orphaned/web/javascript/reference/operators/pipeline_operator/index.html b/files/zh-cn/orphaned/web/javascript/reference/operators/pipeline_operator/index.html deleted file mode 100644 index 12c3b6fbb3..0000000000 --- a/files/zh-cn/orphaned/web/javascript/reference/operators/pipeline_operator/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: 管道操作符 -slug: orphaned/Web/JavaScript/Reference/Operators/Pipeline_operator -tags: - - Experimental - - JavaScript - - Operator - - 语法糖 - - 链式 - - 链式调用 -translation_of: Web/JavaScript/Reference/Operators/Pipeline_operator -original_slug: Web/JavaScript/Reference/Operators/Pipeline_operator ---- -
{{jsSidebar("Operators")}} {{SeeCompatTable}}
- -

试验性的管道操作符 |> (目前其标准化流程处于 stage 1 阶段)允许以一种易读的方式去对函数链式调用。本质上来说,管道操作符是单参数函数调用的语法糖,它允许你像这样执行一个调用:

- -
let url = "%21" |> decodeURI;
- -

使用传统语法写的话,等效的代码是这样的:

- -
let url = decodeURI("%21");
-
- -

语法

- -
expression |> function
- -

例子

- -

函数链式调用

- -

当链式调用多个函数时,使用管道操作符可以改善代码的可读性。

- -
const double = (n) => n * 2;
-const increment = (n) => n + 1;
-
-// 没有用管道操作符
-double(increment(double(5))); // 22
-
-// 用上管道操作符之后
-5 |> double |> increment |> double; // 22
-
- -

规范

- - - - - - - - - - - - - - - - -
规范状态备注
Pipeline operator draftStage 1Not part of the ECMAScript specification yet.
- -

浏览器兼容性Edit

- -
- - -

{{Compat("javascript.operators.pipeline")}}

-
- -

参见

- - -- cgit v1.2.3-54-g00ecf