diff options
Diffstat (limited to 'files/zh-cn/orphaned/web/javascript')
22 files changed, 0 insertions, 2470 deletions
diff --git a/files/zh-cn/orphaned/web/javascript/javascript(起步)/index.html b/files/zh-cn/orphaned/web/javascript/javascript(起步)/index.html deleted file mode 100644 index 7ec33aa1ed..0000000000 --- a/files/zh-cn/orphaned/web/javascript/javascript(起步)/index.html +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: javascript(起步) -slug: orphaned/Web/JavaScript/javascript(起步) -tags: - - bug-840092 -original_slug: Web/JavaScript/javascript(起步) ---- -<h2 id="Why_JavaScript.3F" name="Why_JavaScript.3F">JavaScript是什么?</h2> - -<p>作为一门计算机语言,JavaScript本身强大、复杂,且难于理解。但是,你可以用它来开发一系列的应用程序,它有巨大的潜力来改变当前的互联网现状。下面这个应用程序就是一个很好的例子:<a class="external" href="http://local.google.com/">Google Maps</a>。</p> - -<p>JavaScript(通称为ECMAScript)最大的优势在于,它基于浏览器,但是通过浏览器的支持可以在不同平台上生产出相同结果。 本文举出的例子是 Google Maps,它几乎可以无差别的运行在 Linux、Windows和Mac OS系统中。 伴随大量JavaScript类库的出现,你现在可以用它很轻易的实现文档导航、DOM元素选择、创建动画、处理事件和开发AJAX应用。同其他因各种利益目的而推动的技术不同,JavaScript是一种真正免费并且被广泛采用的跨平台编程语言。</p> - -<h2 id="What_you_should_already_know" name="What_you_should_already_know">你应该知道</h2> - -<p>JavaScript是一种非常容易入门的编程语言。你只需要一个文本编辑器和web浏览器就可以开始进行学习。 </p> - -<p>在使用 JavaScript进行开发的过程中,可能还会涉及很多其他技术,这不在本文讨论的范围之内。 所以,不要期望在学习的第一天就能开发出一个类似 Google maps 这样的应用程序。</p> - -<h2 id="Getting_Started" name="Getting_Started">起步</h2> - -<p>JavaScript的起步非常简单。你不需要进行复杂的程序安装,不需要去了解如何使用shell、打包器或编译器。它是通过浏览器来展示的,你所需要做的全部事情就是把你的代码保存为文本文件,然后再浏览器中打开。就这么简单!</p> - -<p>JavaScript非常适合作为入门级的编程语言。它直观形象,并且教会学生认识到这是一个在实际生活中非常有用的工具。 对比C、C++和 Java等语言会发现有很大不同,它们只对那些专业的软件开发者来说是有价值的。</p> - -<h2 id="Browser_Compatibility_Issues" name="Browser_Compatibility_Issues">浏览器兼容问题</h2> - -<p>不同浏览器在功能实现上有很多不同之处。Mozilla, Microsoft IE, Apple Safari 和 Opera 在行为上有很多差异。 我们计划在此记录这些差异 <a href="/en-US/docs/JavaScript/Compatibility" title="en-US/docs/JavaScript/Compatibility">documenting these variations</a>。你可以使用各种跨平台的JavaScript API接口来解决这些兼容性问题。这些API隐藏了浏览器之间的各种差异,提供了通用性的功能函数来方便调用。</p> - -<h2 id="How_to_try_the_Examples" name="How_to_try_the_Examples">如何运行示例</h2> - -<p>下面的例子都有相同的代码。要执行它们有多种方法,如果你有自己的个人站点,你还可以在站点上把这些例子保存为新的页面。</p> - -<p>如果你没有自己的个人站点,你可以在电脑上把这些例子保存下来,并使用你自己的浏览器来执行它们。这就是JavaScript简单的地方,也是它适合做入门语言的原因。你不需要编译器或者开发环境,你只需要一个浏览器就可以开始起步了。</p> - -<h2 id="Example:_Catching_a_mouse_click" name="Example:_Catching_a_mouse_click">举例:捕获一个鼠标单击事件</h2> - -<p>事件处理 (事件类型、事件注册、冒泡等) 的细节是一个非常宽泛的话题,这个简单的例子并不能说明所有的问题。然而,如果我们不涉及JavaScript事件系统,我们就不能很好展示一个鼠标点击捕获的范例。你只需要记得例子里展示的只是JavaScrpt事件系统里非常表象的一些东西,如果你想要了解更多的内部细节,那你可以去查找更详细的相关资料。</p> - -<p>鼠标事件只是浏览器同用户交互过程中所产生的事件系统里的一个子集。下面列举了一些用户在交互过程中产生的具体的鼠标事件:</p> - -<ul> - <li>Click - 用户点击鼠标时触发</li> - <li>DblClick - 用户双击鼠标时触发</li> - <li>MouseDown - 用户按下鼠标键触发 (click事件前半部分)</li> - <li>MouseUp - 用户释放鼠标键触发 (click事件后半部分)</li> - <li>MouseOut - 当鼠标指针离开对象物理边界时触发</li> - <li>MouseOver - 当鼠标指针进入对象物理边界时触发</li> - <li>MouseMove -当鼠标指针在对象物理边界内移动时触发</li> - <li>ContextMenu - 用户点击鼠标右键时触发</li> -</ul> - -<p>捕获事件并注册处理函数最简单的办法就是使用HTML,你可以把事件当成元素属性来使用。例子:</p> - -<pre class="brush:js"> <span onclick="alert('Hello World!');">Click Here</span></pre> - -<p>要执行的JavaScript代码既可以作为属性值写在行内位置,也可以写成函数并用<script>包裹后放到HTML页面中:</p> - -<pre class="brush:js"><script type="text/javascript"> - function onclick_callback () { - alert ("Hello, World!"); - } -</script> -<span onclick="onclick_callback();">Click Here</span></pre> - -<p>另外,事件对象是可以被捕获和引用,开发者可以通过访问事件对象来获取更多信息,如捕获事件的对象、事件类型、哪个鼠标按键被点击等。我们还用上面的例子来说明:</p> - -<pre class="brush:js"><script type="text/javascript"> - function onclick_callback(event) { - var eType = event.type; - /* the following is for compatability */ - /* Moz populates the target property of the event object */ - /* IE populates the srcElement property */ - var eTarget = event.target || event.srcElement; - - alert( "Captured Event (type=" + eType + ", target=" + eTarget ); - } -</script> -<span onclick="onclick_callback(event);">Click Here</span></pre> - -<p>对于事件的注册和接收还用注意一些的是,你可以给任何使用JavaScript生成的HTMLElement对象做相同的操作。下面的例子展示了一个这样的过程:生成span对象,添加到页面中的body,给span注册mouse-over、mouse-out、mouse-down和 mouse-up事件。</p> - -<pre class="brush:js"><script type="text/javascript"> - function mouseevent_callback(event) { - /* The following is for compatability */ - /* IE does NOT by default pass the event object */ - /* obtain a ref to the event if one was not given */ - if (!event) event = window.event; - - /* obtain event type and target as earlier */ - var eType = event.type; - var eTarget = event.target || event.srcElement; - alert(eType +' event on element with id: '+ eTarget.id); - } - - function onload () { - /* obtain a ref to the 'body' element of the page */ - var body = document.body; - /* create a span element to be clicked */ - var span = document.createElement('span'); - span.id = 'ExampleSpan'; - span.appendChild(document.createTextNode ('Click Here!')); - - /* register the span object to receive specific mouse events */ - span.onmousedown = mouseevent_callback; - span.onmouseup = mouseevent_callback; - span.onmouseover = mouseevent_callback; - span.onmouseout = mouseevent_callback; - - /* display the span on the page */ - body.appendChild(span); -} -</script></pre> - -<p>{{ draft() }}</p> - -<h2 id="Example:_Catching_a_keyboard_event" name="Example:_Catching_a_keyboard_event">举例:捕获一个键盘事件</h2> - -<p>同上面的例子类似,键盘事件捕获也依赖于JavaScript事件系统。当键盘上的键被使用的时候触发键盘事件。</p> - -<p>下面的列表展示了一些具体的键盘事件,同鼠标事件相比是很少的:</p> - -<ul> - <li>KeyPress - 按键被按下并且释放后触发</li> - <li>KeyDown - 按键被按下但是还没有被释放时触发</li> - <li>KeyUp - 按键被释放时触发</li> - <li>TextInput ( Webkit浏览器下可以使用,并且只在输入时有效) - 通过粘贴、语音或者键盘输入文本时触发。本文不介绍该事件。</li> -</ul> - -<p>在一个 <a class="new " href="/en-US/docs/DOM/event/keypress" rel="internal">keypress</a> 事件中,键值的Unicode编码会存储到属性keyCode或者<code><a href="/en-US/docs/DOM/event.charCode" rel="internal">charCode</a></code> 中,但是两者不会同时存在。按键会生成一个字母 (如 'a'),这时会把字母的编码存储到<code>charCode</code> 中,注意这里是区分大小写的( <code>charCode</code> 会判断shift键是否同时被按下)。其他情况下,编码会存储到 <code>keyCode中。</code></p> - -<p>捕获键盘事件最简单的方法仍然是在HTML中注册键盘事件的处理函数,在元素属性中处理相关事件。 举例:</p> - -<pre class="brush:js"> <input type="text" onkeypress="alert ('Hello World!');"></input> -</pre> - -<p>同鼠标事件类似,你的 JavaScript代码既可以写到属性值内,也可以作为函数用<script包裹后写到HTML页面中:</p> - -<pre class="brush:js"><script type="text/javascript"> - function onkeypress_callback () { - alert ("Hello, World!"); - } -</script> - -<input onkeypress="onkeypress_callback();"></input> -</pre> - -<p>捕获事件和引用事件源(一个真实的键被按下时) 的方法同鼠标事件类似:</p> - -<pre class="brush:js"><script type="text/javascript"> - function onkeypress_callback(evt) { - var eType = evt.type; // Will return "keypress" as the event type - var eCode = 'keyCode is ' + evt.keyCode; - var eChar = 'charCode is ' + evt.charCode; - - alert ("Captured Event (type=" + eType + ", key Unicode value=" + eCode + ", ASCII value=" + eChar + ")"); - } -</script> -<input onkeypress="onkeypress_callback(event);"></input></pre> - -<p>要捕获页面上所有的键盘事件,可以在document上注册和绑定相关的处理函数:</p> - -<pre class="brush:js"><script type="text/javascript"> - document.onkeypress = key_event; - document.onkeydown = key_event; - document.onkeyup = key_event; - - function key_event(evt) { - var eType = evt.type; - var eCode = "ASCII code is " + evt.keyCode; - var eChar = 'charCode is ' + evt.charCode; - - alert ("Captured Event (type=" + eType + ", key Unicode value=" + eCode + ", ASCII value=" + eChar + ")"); - } -</script></pre> - -<p>下面是一个完整的键盘事件处理过程:</p> - -<pre class="brush:js"><!DOCTYPE html> -<html> -<head> - <script> - var metaChar = false; - var exampleKey = 16; - function keyEvent(event) { - var key = event.keyCode || event.which; - var keychar = String.fromCharCode(key); - if (key==exampleKey) { metaChar = true; } - if (key!=exampleKey) { - if (metaChar) { - alert("Combination of metaKey + " + keychar) - metaChar = false; - } else { alert("Key pressed " + key); } - } - } - function metaKeyUp (event) { - var key = event.keyCode || event.which; - if (key==exampleKey) { metaChar = false; } - } - </script> -</head> -<body onkeydown="keyEvent(event)" onkeyup="metaKeyUp(event)"> -</body> -</html></pre> - -<h3 id="浏览器_bugs_和_quirks">浏览器 bugs 和 quirks</h3> - -<p>键盘事件中有两个可用的属性<code style="font-style: normal; line-height: 1.5;">keyCode</code><span style="line-height: 1.5;"> 和 </span><code style="font-style: normal; line-height: 1.5;">charCode。通常情况下,</code><code style="font-style: normal; line-height: 1.5;">keyCode</code><span style="line-height: 1.5;"> 指向的是用户按下的键盘上的那个键,而</span><code style="font-style: normal; line-height: 1.5;">charCode</code><span style="line-height: 1.5;"> 存储的是相应键的 ASCII 码值。这两个值不一定相同,如, 小写 'a' 和 大写 'A' 拥有相同的 </span><code style="font-style: normal; line-height: 1.5;">keyCode,因为用户按下的是相同的按键,但是他们的</code><code style="font-style: normal; line-height: 1.5;">charCode不同,因为两个字母的码值不同。</code><span style="line-height: 1.5;"> </span></p> - -<p>不同浏览器对于charCode的处理方式并不统一。例如Internet Explorer 和Opera 并不支持 <code>charCode,他们把字母信息写到了</code><code>keyCode</code>中,而且只在 onkeypress下有效。在 Onkeydown 和Onkeyup的事件中, <code>keyCode</code> 存储的仍然是按键的相关信息。 Firefox 则使用 "which", 来区分字母。.</p> - -<p>可以到 Mozilla 文档 <a href="/en-US/docs/DOM/Event/UIEvent/KeyboardEvent" title="https://developer.mozilla.org/en-US/docs/DOM/Event/UIEvent/KeyEvent">Keyboard Events</a> 去了解关于键盘事件的更多信息。.</p> - -<p>{{ draft() }}</p> - -<h2 id="Example:_Dragging_images_around" name="Example:_Dragging_images_around">举例:拖曳图片</h2> - -<p>下面的例子展示了firefox浏览器下如何实现拖动图片:</p> - -<pre class="brush:js"><!DOCTYPE html> -<html> -<head> -<style type='text/css'> -img { position: absolute; } -</style> - -<script type='text/javascript'> -window.onload = function() { - - movMeId=document.getElementById("ImgMov"); - movMeId.style.top = "80px"; - movMeId.style.left = "80px"; - movMeId.style.position = "absolute"; - - document.onmousedown = coordinates; - document.onmouseup=mouseup; - - function coordinates(e) { - if (e == null) { e = window.event;} - var sender = (typeof( window.event ) != "undefined" ) ? e.srcElement : e.target; - - if (sender.id=="ImgMov") { - mouseover = true; - pleft = parseInt(movMeId.style.left); - ptop = parseInt(movMeId.style.top); - xcoor = e.clientX; - ycoor = e.clientY; - document.onmousemove=moveImage; - return false; - } else { - return false; - } - } - - function moveImage(e) { - if (e == null) { e = window.event; } - movMeId.style.left = pleft+e.clientX-xcoor+"px"; - movMeId.style.top = ptop+e.clientY-ycoor+"px"; - return false; - } - - function mouseup(e) { - document.onmousemove = null; - } -} -</script> -</head> - -<body> - <img id="ImgMov" src="http://mozcom-cdn.mozilla.net/img/covehead/about/logo/download/logo-only.png" width="64" height="64"/> - <p>Drag and drop around the image in this page.</p> -</body> - -</html></pre> - -<h2 id="Example:_Resizing_things" name="Example:_Resizing_things">举例:改变大小</h2> - -<div>{{todo("Need Content. Or, remove headline")}}</div> - -<h3 id="Example:_Drawing_Lines" name="Example:_Drawing_Lines">举例:绘制直线</h3> - -<div class="originaldocinfo"> -<h2 id="Original_Document_Information" name="Original_Document_Information">附加文档信息</h2> - -<ul> - <li>作者: <a class="external" href="http://linuxmachines.com/">Jeff Carr</a></li> - <li>Here is a attempt at a new <a href="/en-US/docs/javascript_new_testpage" title="en-US/docs/javascript_new_testpage">JavaScript new testpage</a></li> - <li>最后修改: July 14 2005</li> - <li>版权信息: © 2005 by individual contributors; content available under the <a class="external" href="http://www.mozilla.org/foundation/licensing/website-content.html">Creative Commons license</a></li> -</ul> -</div> - -<p> </p> 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 ---- -<div>{{jsSidebar("Errors")}}</div> - -<h2 id="错误提示">错误提示</h2> - -<pre class="syntaxbox">TypeError: invalid arguments (Firefox)</pre> - -<h2 id="错误类型">错误类型</h2> - -<p>{{jsxref("TypeError")}}</p> - -<h2 id="哪里出错了?">哪里出错了?</h2> - -<p><a href="/en-US/docs/Web/JavaScript/Typed_arrays">类型化数组(Typed array</a>) 的构造器可以通过接收以下类型的参数中的一种</p> - -<ul> - <li>表示长度的数字,</li> - <li>另外一个类型化数组,</li> - <li>类数组对象,</li> - <li>可迭代对象,</li> - <li>一个 {{jsxref("ArrayBuffer")}} 对象</li> -</ul> - -<p>来创建一个新的类型化数组。其他类型的构造器参数都无法创建合法的类型化数组。</p> - -<h2 id="示例">示例</h2> - -<p>类型化数组——例如 {{jsxref("Uint8Array")}} ——无法通过字符串创建。实际上,字符串根本不能出现在类型化数组中。</p> - -<pre class="brush: js example-bad">var ta = new Uint8Array("nope"); -// TypeError: invalid arguments -</pre> - -<p>创建一个合法的 {{jsxref("Uint8Array")}} 对象的不同方式:</p> - -<pre class="brush: js example-good">// 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] -</pre> - -<h2 id="相关内容">相关内容</h2> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Typed_arrays">Typed arrays</a></li> - <li>{{jsxref("ArrayBuffer")}}</li> - <li>{{jsxref("Uint8Array")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p><strong><code>Array.prototype</code></strong> 属性表示 {{jsxref("Array")}} 构造函数的原型,并允许您向所有Array对象添加新的属性和方法。</p> - -<pre class="brush: js">/* -如果JavaScript本身不提供 first() 方法, -添加一个返回数组的第一个元素的新方法。 -*/ - -if(!Array.prototype.first) { - Array.prototype.first = function() { - console.log(`如果JavaScript本身不提供 first() 方法, -添加一个返回数组的第一个元素的新方法。`); - return this[0]; - } -} -</pre> - -<h2 id="Description" name="Description">描述</h2> - -<p>{{jsxref("Array")}}实例继承自 <strong>Array.prototype </strong>。与所有构造函数一样,您可以更改构造函数的原型对象,以对所有 {{jsxref("Array")}} 实例进行更改。例如,可以添加新方法和属性以扩展所有Array对象。这用于 {{Glossary("Polyfill", "polyfilling")}}, 例如。</p> - -<p>鲜为人知的事实:<code>Array.prototype</code> 本身也是一个 {{jsxref("Array")}}。</p> - -<pre class="brush: js">Array.isArray(Array.prototype); -// true -</pre> - -<p>{{js_property_attributes(0, 0, 0)}}</p> - -<h2 id="Properties" name="Properties">属性</h2> - -<dl> - <dt><code>Array.prototype.constructor</code></dt> - <dd>所有的数组实例都继承了这个属性,它的值就是 {{jsxref("Array")}},表明了所有的数组都是由 {{jsxref("Array")}} 构造出来的。</dd> - <dt>{{jsxref("Array.prototype.length")}}</dt> - <dd>上面说了,因为 <code>Array.prototype</code> 也是个数组,所以它也有 <code>length</code> 属性,这个值为 <code>0</code>,因为它是个空数组。</dd> -</dl> - -<h2 id="Methods" name="Methods">方法</h2> - -<h3 id="Mutator_methods" name="Mutator_methods">会改变自身的方法</h3> - -<p>下面的这些方法会改变调用它们的对象自身的值:</p> - -<dl> - <dt>{{jsxref("Array.prototype.copyWithin()")}} {{experimental_inline}}</dt> - <dd>在数组内部,将一段元素序列拷贝到另一段元素序列上,覆盖原有的值。</dd> - <dt>{{jsxref("Array.prototype.fill()")}} {{experimental_inline}}</dt> - <dd>将数组中指定区间的所有元素的值,都替换成某个固定的值。</dd> - <dt>{{jsxref("Array.prototype.pop()")}}</dt> - <dd>删除数组的最后一个元素,并返回这个元素。</dd> - <dt>{{jsxref("Array.prototype.push()")}}</dt> - <dd>在数组的末尾增加一个或多个元素,并返回数组的新长度。</dd> - <dt>{{jsxref("Array.prototype.reverse()")}}</dt> - <dd>颠倒数组中元素的排列顺序,即原先的第一个变为最后一个,原先的最后一个变为第一个。</dd> - <dt>{{jsxref("Array.prototype.shift()")}}</dt> - <dd>删除数组的第一个元素,并返回这个元素。</dd> - <dt>{{jsxref("Array.prototype.sort()")}}</dt> - <dd>对数组元素进行排序,并返回当前数组。</dd> - <dt>{{jsxref("Array.prototype.splice()")}}</dt> - <dd>在任意的位置给数组添加或删除任意个元素。</dd> - <dt>{{jsxref("Array.prototype.unshift()")}}</dt> - <dd>在数组的开头增加一个或多个元素,并返回数组的新长度。</dd> -</dl> - -<h3 id="Accessor_methods" name="Accessor_methods">不会改变自身的方法</h3> - -<p>下面的这些方法绝对不会改变调用它们的对象的值,只会返回一个新的数组或者返回一个其它的期望值。</p> - -<dl> - <dt>{{jsxref("Array.prototype.concat()")}}</dt> - <dd>返回一个由当前数组和其它若干个数组或者若干个非数组值组合而成的新数组。</dd> - <dt>{{jsxref("Array.prototype.includes()")}} {{experimental_inline}}</dt> - <dd>判断当前数组是否包含某指定的值,如果是返回 <code>true</code>,否则返回 <code>false</code>。</dd> - <dt>{{jsxref("Array.prototype.join()")}}</dt> - <dd>连接所有数组元素组成一个字符串。</dd> - <dt>{{jsxref("Array.prototype.slice()")}}</dt> - <dd>抽取当前数组中的一段元素组合成一个新数组。</dd> - <dt>{{jsxref("Array.prototype.toSource()")}} {{non-standard_inline}}</dt> - <dd>返回一个表示当前数组字面量的字符串。遮蔽了原型链上的 {{jsxref("Object.prototype.toSource()")}} 方法。</dd> - <dt>{{jsxref("Array.prototype.toString()")}}</dt> - <dd>返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的 {{jsxref("Object.prototype.toString()")}} 方法。</dd> - <dt>{{jsxref("Array.prototype.toLocaleString()")}}</dt> - <dd>返回一个由所有数组元素组合而成的本地化后的字符串。遮蔽了原型链上的 {{jsxref("Object.prototype.toLocaleString()")}} 方法。</dd> - <dt>{{jsxref("Array.prototype.indexOf()")}}</dt> - <dd>返回数组中第一个与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。</dd> - <dt>{{jsxref("Array.prototype.lastIndexOf()")}}</dt> - <dd>返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。</dd> -</dl> - -<h3 id="Iteration_methods" name="Iteration_methods">遍历方法</h3> - -<p>在下面的众多遍历方法中,有很多方法都需要指定一个回调函数作为参数。在每一个数组元素都分别执行完回调函数之前,数组的length属性会被缓存在某个地方,所以,如果你在回调函数中为当前数组添加了新的元素,那么那些新添加的元素是不会被遍历到的。此外,如果在回调函数中对当前数组进行了其它修改,比如改变某个元素的值或者删掉某个元素,那么随后的遍历操作可能会受到未预期的影响。总之,不要尝试在遍历过程中对原数组进行任何修改,虽然规范对这样的操作进行了详细的定义,但为了可读性和可维护性,请不要这样做。</p> - -<dl> - <dt>{{jsxref("Array.prototype.forEach()")}}</dt> - <dd>为数组中的每个元素执行一次回调函数。</dd> - <dt>{{jsxref("Array.prototype.entries()")}} {{experimental_inline}}</dt> - <dd>返回一个数组迭代器对象,该迭代器会包含所有数组元素的键值对。</dd> - <dt>{{jsxref("Array.prototype.every()")}}</dt> - <dd>如果数组中的每个元素都满足测试函数,则返回 <code>true</code>,否则返回 <code>false。</code></dd> - <dt>{{jsxref("Array.prototype.some()")}}</dt> - <dd>如果数组中至少有一个元素满足测试函数,则返回 true,否则返回 false。</dd> - <dt>{{jsxref("Array.prototype.filter()")}}</dt> - <dd>将所有在过滤函数中返回 <code>true</code> 的数组元素放进一个新数组中并返回。</dd> - <dt>{{jsxref("Array.prototype.find()")}} {{experimental_inline}}</dt> - <dd>找到第一个满足测试函数的元素并返回那个元素的值,如果找不到,则返回 <code>undefined</code>。</dd> - <dt>{{jsxref("Array.prototype.findIndex()")}} {{experimental_inline}}</dt> - <dd>找到第一个满足测试函数的元素并返回那个元素的索引,如果找不到,则返回 <code>-1</code>。</dd> - <dt>{{jsxref("Array.prototype.keys()")}} {{experimental_inline}}</dt> - <dd>返回一个数组迭代器对象,该迭代器会包含所有数组元素的键。</dd> - <dt>{{jsxref("Array.prototype.map()")}}</dt> - <dd>返回一个由回调函数的返回值组成的新数组。</dd> - <dt>{{jsxref("Array.prototype.reduce()")}}</dt> - <dd>从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。</dd> - <dt>{{jsxref("Array.prototype.reduceRight()")}}</dt> - <dd>从右到左为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。</dd> - <dt>{{jsxref("Array.prototype.values()")}} {{experimental_inline}}</dt> - <dd>返回一个数组迭代器对象,该迭代器会包含所有数组元素的值。</dd> - <dt>{{jsxref("Array.prototype.@@iterator()", "Array.prototype[@@iterator]()")}} {{experimental_inline}}</dt> - <dd>和上面的 <code>values() 方法是同一个函数。</code></dd> -</dl> - -<h3 id="Generic_methods" name="Generic_methods">通用方法</h3> - -<p>在 JavaScript 中,很多的数组方法被故意设计成是通用的。也就是说,那些看起来像是数组的对象(类数组对象),即拥有一个 <code>length</code> 属性,以及对应的索引属性(也就是数字类型的属性,比如 <code>obj[5]</code>)的非数组对象也是可以调用那些数组方法的。其中一些数组方法,比如说 {{jsxref("Array.join", "join")}} 方法,它们只会单纯的读取当前对象的 <code>length</code> 属性和索引属性的值,并不会尝试去改变这些属性的值。而另外一些数组方法,比如说 {{jsxref("Array.reverse", "reverse")}} 方法,它们会尝试修改那些属性的值,因此,如果当前对象是个 {{jsxref("String")}} 对象,那么这些方法在执行时就会报错,因为字符串对象的 <code>length</code> 属性和索引属性都是只读的。</p> - -<h2 id="Specifications" name="Specifications">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES1')}}</td> - <td>{{Spec2('ES1')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.4.3.1', 'Array.prototype')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-array.prototype', 'Array.prototype')}}</td> - <td>{{Spec2('ES6')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">浏览器兼容性</h2> - -<div> -<div> - - -<p>{{Compat("javascript.builtins.Array.prototype")}}</p> -</div> -</div> - -<h2 id="See_also" name="See_also">相关链接</h2> - -<ul> - <li>{{jsxref("Array")}}</li> - <li>{{jsxref("Function.prototype")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p><code><strong>AsyncFunction.prototype</strong></code> 属性表示 {{jsxref("AsyncFunction")}} 的原型对象。</p> - -<h2 id="描述">描述</h2> - -<p>{{jsxref("AsyncFunction")}} 对象继承自 <code>AsyncFunction.prototype</code>。<code>AsyncFunction.prototype</code> 不能被修改。</p> - -<h2 id="属性">属性</h2> - -<dl> - <dt><code><strong>AsyncFunction.constructor</strong></code></dt> - <dd>默认值为 {{jsxref("AsyncFunction")}}。</dd> - <dt><code><strong>AsyncFunction.prototype[@@toStringTag]</strong></code></dt> - <dd>返回 "AsyncFunction"。</dd> -</dl> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-async-function-constructor-prototype', 'AsyncFunction.prototype')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td>最初定义在ES2017.</td> - </tr> - </tbody> -</table> - -<h2 id="兼容性">兼容性</h2> - -<div> -<div> - - -<p>{{Compat("javascript.builtins.AsyncFunction.prototype")}}</p> -</div> -</div> - -<h2 id="参见">参见</h2> - -<ul> - <li>{{jsxref("AsyncFunction")}}</li> - <li>{{jsxref("Function")}}</li> -</ul> 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 ---- -<p>{{JSRef}}{{Draft}}</p> - -<p><strong><code>AsyncIterator</code></strong> 全局对象是一个提供辅助方法的抽象类,与暴露在{{JSxRef("Array")}} 实例上的那些类似。</p> - -<h2 id="构造函数">构造函数</h2> - -<dl> - <dt>{{JSxRef("AsyncIterator.AsyncIterator", "AsyncIterator()")}} </dt> - <dd>一个抽象构造函数,仅能够通过 {{JSxRef("Operators/super", "super()")}} 来调用。</dd> -</dl> - -<h2 id="属性">属性</h2> - -<dl> - <dt><code>AsyncIterator.prototype</code></dt> - <dd><code>%AsyncIteratorPrototype%</code> 内部对象。</dd> -</dl> - -<h2 id="方法">方法</h2> - -<dl> - <dt>{{JSxRef("AsyncIterator.from()")}} </dt> - <dd>等同于在传入的对象上调用 <code>@@asyncIterator</code> 。</dd> -</dl> - -<h2 id="AsyncIterator_原型"><code>AsyncIterator</code> 原型</h2> - -<h3 id="原型属性">原型属性</h3> - -<dl> - <dt><code>AsyncIterator.prototype.constructor</code></dt> - <dd>指定创建对的象原型的函数.</dd> - <dt><code>AsyncIterator.prototype[@@toStringTag]</code> </dt> - <dd><code>字符串 "Iterator"</code>.</dd> -</dl> - -<h3 id="原型方法">原型方法</h3> - -<dl> - <dt>{{JSxRef("AsyncIterator.prototype.map()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.filter()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.take()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.drop()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.asIndexedPairs()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.flatMap()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.reduce()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.toArray()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.forEach()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.some()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.every()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.find()")}} </dt> - <dd>...</dd> - <dt>{{JSxRef("AsyncIterator.prototype.@@iterator()", "AsyncIterator.prototype[@@iterator]()")}}</dt> - <dd>返回该 <code>AsyncIterator</code> 实例。</dd> -</dl> - -<h2 id="实现方法">实现方法</h2> - -<dl> - <dt>{{JSxRef("AsyncIterator.prototype.next()", "<<var>implementation</var>>.prototype.next()")}}</dt> - <dd>获取 <code>AsyncIterator</code> 中的下一项</dd> - <dt>{{JSxRef("AsyncIterator.prototype.return()", "<<var>implementation</var>>.prototype.next()")}}{{Optional_Inline}}</dt> - <dd>返回给出的值,并结束迭代。</dd> - <dt>{{JSxRef("AsyncIterator.prototype.throw()", "<<var>implementation</var>>.prototype.next()")}}{{Optional_Inline}}</dt> - <dd>抛出一个迭代器错误(同时也终止了迭代器,除非是在该迭代器内部被捕获)。</dd> -</dl> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - </thead> - <tbody> - <tr> - <td><a href="https://tc39.es/proposal-iterator-helpers/#sec-asynciterator-constructor">ESNext Iterator Helpers Proposal</a></td> - <td><span class="spec-Draft">Stage 2 Draft</span></td> - <td>Initial definition</td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性">浏览器兼容性</h2> - - - -<p>{{Compat("javascript.builtins.AsyncIterator")}}</p> - -<h2 id="另请参阅">另请参阅</h2> - -<ul> - <li>{{JSxRef("Iteration_protocols", "Iteration protocols", "", "1")}}</li> - <li>{{JSxRef("Generator")}}</li> - <li>{{JSxRef("Global_Objects/AsyncGenerator", "AsyncGenerator")}}</li> - <li>{{JSxRef("Iterator")}} </li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p><code><strong>@@iterator</strong></code><strong> </strong>属性的初始值与 {{jsxref("Map.prototype.entries()", "entries")}} 属性的初始值是同一个函数对象。</p> - -<div>{{EmbedInteractiveExample("pages/js/map-prototype-@@iterator.html")}}</div> - - - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox"><code><em>myMap</em>[Symbol.iterator]</code></pre> - -<h3 id="返回值">返回值</h3> - -<p>map 的 <strong>iterator</strong> 函数默认就是 {{jsxref("Map.prototype.entries()", "entries()")}} 函数。</p> - -<h2 id="示例">示例</h2> - -<h3 id="使用_iterator()">使用 <code>[@@iterator]()</code></h3> - -<pre class="brush:js">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"] -</pre> - -<h3 id="在for..of中使用iterator()">在<code>for..of中</code>使用<code>[@@iterator]()</code> </h3> - -<pre class="brush:js">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</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-map.prototype-@@iterator', 'Map.prototype[@@iterator]()')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-map.prototype-@@iterator', 'Map.prototype[@@iterator]()')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容">浏览器兼容</h2> - - - -<p>{{Compat("javascript.builtins.Map.@@iterator")}}</p> - -<h2 id="另见">另见</h2> - -<ul> - <li>{{jsxref("Map.prototype.entries()")}}</li> - <li>{{jsxref("Map.prototype.keys()")}}</li> - <li>{{jsxref("Map.prototype.values()")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p> <code><strong>Map[@@species]</strong></code> 访问器属性会返回一个 <code>Map</code> 构造函数.</p> - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox">Map[Symbol.species] -</pre> - -<h2 id="描述">描述</h2> - -<p>The species accessor property returns the default constructor for <code>Map</code> objects. Subclass constructors may over-ride it to change the constructor assignment.</p> - -<h2 id="案例">案例</h2> - -<p>The species property returns the default constructor function, which is the <code>Map</code> constructor for <code>Map</code> objects:</p> - -<pre class="brush: js">Map[Symbol.species]; // function Map()</pre> - -<p>In a derived collection object (e.g. your custom map <code>MyMap</code>), the <code>MyMap</code> species is the <code>MyMap</code> constructor. However, you might want to overwrite this, in order to return parent <code>Map</code> objects in your derived class methods:</p> - -<pre class="brush: js">class MyMap extends Map { - // 重写覆盖 MyMap species to the parent Map constructor - static get [Symbol.species]() { return Map; } -}</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-get-map-@@species', 'get Map [ @@species ]')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-get-map-@@species', 'get Map [ @@species ]')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性">浏览器兼容性</h2> - -<div> - - -<p>{{Compat("javascript.builtins.Map.@@species")}}</p> -</div> - -<h2 id="相关链接">相关链接</h2> - -<ul> - <li>{{jsxref("Map")}}</li> - <li>{{jsxref("Symbol.species")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p> <strong><code>Map[@@toStringTag]</code></strong> 的初始值是"Map".</p> - -<div>{{js_property_attributes(0,0,1)}}</div> - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox">Map[Symbol.toStringTag]</pre> - -<h2 id="示例">示例</h2> - -<pre class="brush:js">Object.prototype.toString.call(new Map()) // "[object Map]" -</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-map.prototype-@@tostringtag', 'Map.prototype[@@toStringTag]')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-map.prototype-@@tostringtag', 'Map.prototype[@@toStringTag]')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容">浏览器兼容</h2> - -<p>{{CompatibilityTable}} </p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{ CompatChrome(44.0) }}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Android Webview</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - <th>Chrome for Android</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{ CompatNo }}</td> - <td>{{ CompatChrome(44.0) }}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatChrome(44.0)}}</td> - </tr> - </tbody> -</table> -</div> 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 ---- -<div>{{JSRef}}</div> - -<p><code>clear()</code>方法会移除Map对象中的所有元素。</p> - -<div>{{EmbedInteractiveExample("pages/js/map-prototype-clear.html")}}</div> - - - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox"><code><em>myMap</em>.clear();</code> -</pre> - -<h3 id="返回值">返回值</h3> - -<p>{{jsxref("undefined")}}.</p> - -<h2 id="示例">示例</h2> - -<h3 id="调用clear方法">调用<code>clear</code>方法</h3> - -<pre class="brush: js">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 -</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-map.prototype.clear', 'Map.prototype.clear')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-map.prototype.clear', 'Map.prototype.clear')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容">浏览器兼容</h2> - - - -<p>{{Compat("javascript.builtins.Map.clear")}}</p> - -<h2 id="相关链接">相关链接</h2> - -<ul> - <li>{{jsxref("Map")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p><strong> </strong><code><strong><strong>delete()</strong></strong></code><strong> </strong>方法用于移除 <code>Map</code> 对象中指定的元素。</p> - -<div>{{EmbedInteractiveExample("pages/js/map-prototype-delete.html")}}</div> - - - -<h2 id="语法">语法</h2> - -<pre class="brush: js">myMap.delete(key);</pre> - -<h3 id="参数">参数</h3> - -<dl> - <dt>key</dt> - <dd>必须。从 <code>Map</code> 对象中移除的元素的键。</dd> -</dl> - -<h3 id="返回值">返回值</h3> - -<dl> - <dt>Boolean</dt> - <dd>如果 <code>Map</code> 对象中存在该元素,则移除它并返回<em> <code>true</code></em>;否则如果该元素不存在则返回 <code><em>false</em></code>。</dd> -</dl> - -<h2 id="示例">示例</h2> - -<h3 id="使用_delete_方法">使用 <code>delete</code> 方法</h3> - -<pre class="brush: js">var myMap = new Map(); -myMap.set("bar", "foo"); - -myMap.delete("bar"); // 返回 true。成功地移除元素 -myMap.has("bar"); // 返回 false。"bar" 元素将不再存在于 Map 实例中 -</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-map.prototype.delete', 'Map.prototype.delete')}}</td> - <td>{{Spec2('ES6')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-map.prototype.delete', 'Map.prototype.delete')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性">浏览器兼容性</h2> - -<p>{{Compat("javascript.builtins.Map.delete")}}</p> - -<h2 id="相关链接">相关链接</h2> - -<ul> - <li>{{jsxref("Map")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p><code><strong>entries()</strong></code> 方法返回一个新的包含 <code>[key, value]</code> 对的 <code><strong>Iterator</strong></code> 对象,返回的迭代器的迭代顺序与 <code>Map</code> 对象的插入顺序相同。</p> - -<p>{{EmbedInteractiveExample("pages/js/map-prototype-entries.html")}}</p> - -<h2 id="语法">语法</h2> - -<pre><code><var>myMap</var>.entries()</code> -</pre> - -<h3 id="返回值">返回值</h3> - -<p>一个新的 {{jsxref("Map")}} 迭代器对象.</p> - -<h2 id="示例">示例</h2> - -<h3 id="entries()的使用"><code>entries()</code>的使用</h3> - -<pre class="brush:js">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"] -</pre> - -<h2 id="规范">规范</h2> - -<table> - <thead> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-map.prototype.entries', 'Map.prototype.entries')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-map.prototype.entries', 'Map.prototype.entries')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Initial definition.</td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性">浏览器兼容性</h2> - -<p>{{Compat("javascript.builtins.Map.entries")}}</p> - -<h2 id="相关链接">相关链接</h2> - -<ul> - <li>{{jsxref("Map.prototype.keys()")}}</li> - <li>{{jsxref("Map.prototype.values()")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p><span class="seoSummary"><code><strong>forEach()</strong></code> 方法按照插入顺序依次对 <code>Map</code> 中每个键/值对执行一次给定的函数</span></p> - -<div>{{EmbedInteractiveExample("pages/js/map-prototype-foreach.html")}}</div> - - - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox notranslate"><code><var>myMap</var>.forEach(<var>callback([<var>value</var>][,<var>key</var>][,<var>map</var>])[, <var>thisArg</var>])</var></code></pre> - -<h3 id="参数">参数</h3> - -<dl> - <dt><code><var>callback</var></code></dt> - <dd> - <p><code><var>myMap</var></code> 中每个元素所要执行的函数。它具有如下的参数</p> - - <dl> - <dt><code><var>value</var></code> {{Optional_Inline}}</dt> - <dd>每个迭代的值。</dd> - <dt><code><var>key</var></code> {{Optional_Inline}}</dt> - <dd>每个迭代的键。</dd> - <dt><code><var>map</var></code> {{Optional_Inline}}</dt> - <dd>被迭代的map(上文语法框中的 <code><var>myMap</var></code>)。</dd> - </dl> - </dd> - <dt><code><var>thisArg</var></code> {{Optional_Inline}}</dt> - <dd>在 <code><var>callback</var></code> 执行中使用的 <code>this</code> 的值。</dd> -</dl> - -<h3 id="返回值">返回值</h3> - -<p>{{jsxref("undefined")}}.</p> - -<h2 id="描述">描述</h2> - -<p><code>forEach</code> 方法会对map中每个真实存在的键执行一次给定的 <code><var>callback</var></code> 函数。它不会对被删除的键执行函数。然而,它会对每个值为 <code>undefined</code> 的键执行函数。</p> - -<p><code><var>callback</var></code> 接收<strong>三个参数</strong>:</p> - -<ul> - <li>当前的 <code><var>value</var></code></li> - <li>当前的 <code><var>key</var></code></li> - <li>正在被遍历的 <strong><code>Map</code> 对象</strong></li> -</ul> - -<p>如果 <code>forEach</code> 中含有 <code><var>thisArg</var></code> 参数,那么每次 <code><var>callback</var></code> 被调用时,都会被用作 <code>this</code> 的值。否则,<code>undefined</code> 将会被用作 <code>this</code> 的值。按照<a href="/en-US/docs/Web/JavaScript/Reference/Operators/this">函数观察到 <code>this</code> 的常用规则</a>,<code><var>callback</var></code> 函数最终可观察到 <code>this</code> 值。</p> - -<p>每个值只被访问一次,除非它被删除了或者在 <code>forEach</code> 结束前被改变了。<code><var>callback</var></code> 不会对在被访问前就删除的元素执行。在 <code>forEach</code> 结束前被添加的元素将会被访问。</p> - -<p><code>forEach</code> 会对 <code>Map</code> 对象中的每个元素执行一次 <code><var>callback</var></code>。它不会返回值。</p> - -<h2 id="示例">示例</h2> - -<h3 id="输出一个_Map_对象中的内容">输出一个 <code>Map</code> 对象中的内容</h3> - -<p>以下的代码在每行中打印一个 <code>Map</code> 对象中的元素</p> - -<pre class="brush:js notranslate">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" -</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">规范</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}}</td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容">浏览器兼容</h2> - - - -<p>{{Compat("javascript.builtins.Map.forEach")}}</p> - -<h2 id="参见">参见</h2> - -<ul> - <li>{{jsxref("Array.prototype.forEach()")}}</li> - <li>{{jsxref("Set.prototype.forEach()")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p><code><strong>get()</strong></code> 方法返回某个 <code>Map</code> 对象中的一个指定元素。</p> - -<div>{{EmbedInteractiveExample("pages/js/map-prototype-get.html")}}</div> - - - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox"><code><em>myMap</em>.get(key);</code></pre> - -<h3 id="参数">参数</h3> - -<dl> - <dt>key</dt> - <dd>必须参数,也是它唯一的参数,要从目标 <code>Map</code> 对象中获取的元素的键。</dd> -</dl> - -<h3 id="返回值">返回值</h3> - -<p>返回一个 <code>Map</code> 对象中与指定键相关联的值,如果找不到这个键则返回 <code>undefined</code>。</p> - -<h2 id="示例">示例</h2> - -<h3 id="使用_get_方法">使用 <code>get</code> 方法</h3> - -<pre class="brush: js">var myMap = new Map(); -myMap.set("bar", "foo"); - -myMap.get("bar"); // 返回 "foo" -myMap.get("baz"); // 返回 undefined -</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">规范</th> - <th scope="col">状态</th> - <th scope="col">备注</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-map.prototype.get', 'Map.prototype.get')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-map.prototype.get', 'Map.prototype.get')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性">浏览器兼容性</h2> - - - -<p>{{Compat("javascript.builtins.Map.get")}}</p> - -<h2 id="参见">参见</h2> - -<ul> - <li>{{jsxref("Map")}}</li> - <li>{{jsxref("Map.prototype.set()")}}</li> - <li>{{jsxref("Map.prototype.has()")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p>方法<code><strong>has()</strong></code> 返回一个bool值,用来表明map 中是否存在指定元素.</p> - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox"><code><em>myMap</em>.has(key);</code></pre> - -<h3 id="参数">参数</h3> - -<dl> - <dt>key</dt> - <dd>必填. 用来检测是否存在指定元素的键值.</dd> -</dl> - -<h3 id="返回值">返回值</h3> - -<dl> - <dt>Boolean</dt> - <dd>如果指定元素存在于Map中,则返回true。其他情况返回false</dd> -</dl> - -<h2 id="案例">案例</h2> - -<h3 id="使用has方法">使用has方法</h3> - -<pre class="brush: js">var myMap = new Map(); -myMap.set("bar", "foo"); - -myMap.has("bar"); // returns true -myMap.has("baz"); // returns false -</pre> - -<h2 id="规范列表">规范列表</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">规范名称</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-map.prototype.has', 'Map.prototype.has')}}</td> - <td>{{Spec2('ES6')}}</td> - <td>Initial definition.</td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性">浏览器兼容性</h2> - -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>浏览器</th> - <th>Chrome谷歌</th> - <th>Firefox (Gecko)火狐</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>兼容版本</td> - <td>38</td> - <td>{{CompatGeckoDesktop("13.0")}}</td> - <td>11</td> - <td>25</td> - <td>7.1</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>浏览器</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>兼容版本</td> - <td>{{CompatNo}}</td> - <td>38</td> - <td>{{CompatGeckoMobile("13.0")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>8</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="相关链接">相关链接</h2> - -<ul> - <li>{{jsxref("Map")}}</li> - <li>{{jsxref("Map.prototype.set()")}}</li> - <li>{{jsxref("Map.prototype.get()")}}</li> -</ul> 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 ---- -<div> -<div>{{JSRef}}</div> -</div> - -<p><strong><code>Map</code></strong> 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者{{Glossary("Primitive", "原始值")}}) 都可以作为一个键或一个值。</p> - -<dl> -</dl> - -<h2 id="描述">描述</h2> - -<p>一个Map对象在迭代时会根据对象中元素的插入顺序来进行 — 一个 {{jsxref("Statements/for...of", "for...of")}} 循环在每次迭代后会返回一个形式为[key,value]的数组。</p> - -<h3 id="键的相等Key_equality">键的相等(Key equality)</h3> - -<ul> - <li>键的比较是基于 <code><a href="/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness#零值相等">sameValueZero</a></code> 算法:</li> - <li>{{jsxref("NaN")}} 是与 <code>NaN</code> 相等的(虽然 <code>NaN !== NaN</code>),剩下所有其它的值是根据 <code>===</code> 运算符的结果判断是否相等。</li> - <li>在目前的ECMAScript规范中,<code>-0</code>和<code>+0</code>被认为是相等的,尽管这在早期的草案中并不是这样。有关详细信息,请参阅<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map#浏览器兼容性">浏览器兼容性</a> 表中的“Value equality for -0 and 0”。</li> -</ul> - -<h3 id="Objects_和_maps_的比较">Objects 和 maps 的比较</h3> - -<p>{{jsxref("Object", "Objects")}} 和 <code>Maps</code> 类似的是,它们都允许你按键存取一个值、删除键、检测一个键是否绑定了值。因此(并且也没有其他内建的替代方式了)过去我们一直都把对象当成 <code>Maps</code> 使用。不过 <code>Maps</code> 和 <code>Objects</code> 有一些重要的区别,在下列情况里使用 <code>Map</code> 会是更好的选择:</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="row"></th> - <th scope="col">Map</th> - <th scope="col">Object</th> - </tr> - </thead> - <tbody> - <tr> - <th scope="row">意外的键</th> - <td><code>Map</code> 默认情况不包含任何键。只包含显式插入的键。</td> - <td> - <p>一个 <code>Object</code> 有一个原型, 原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。</p> - - <div class="blockIndicator note"> - <p><strong>注意:</strong> 虽然 ES5 开始可以用 <code>Object.create(null)</code> 来创建一个没有原型的对象,但是这种用法不太常见。</p> - </div> - </td> - </tr> - <tr> - <th scope="row">键的类型</th> - <td>一个 <code>Map</code>的键可以是<strong>任意值</strong>,包括函数、对象或任意基本类型。</td> - <td>一个<code>Object</code> 的键必须是一个 {{jsxref("String")}} 或是{{jsxref("Symbol")}}。</td> - </tr> - <tr> - <th scope="row">键的顺序</th> - <td> - <p><code>Map</code> 中的 key 是有序的。因此,当迭代的时候,一个 <code>Map</code> 对象以插入的顺序返回键值。</p> - </td> - <td> - <p>一个 <code>Object</code> 的键是无序的</p> - - <div class="blockIndicator note"> - <p>注意:自ECMAScript 2015规范以来,对象<em>确实</em>保留了字符串和Symbol键的创建顺序; 因此,在只有字符串键的对象上进行迭代将按插入顺序产生键。</p> - </div> - </td> - </tr> - <tr> - <th scope="row">Size</th> - <td> <code>Map</code> 的键值对个数可以轻易地通过{{jsxref("Map.prototype.size", "size")}} 属性获取</td> - <td><code>Object</code> 的键值对个数只能手动计算</td> - </tr> - <tr> - <th scope="row">迭代</th> - <td><code>Map</code> 是 <a href="/en-US/docs/Web/JavaScript/Guide/iterable">iterable</a> 的,所以可以直接被迭代。</td> - <td>迭代一个<code>Object</code>需要以某种方式获取它的键然后才能迭代。</td> - </tr> - <tr> - <th scope="row">性能</th> - <td> - <p>在频繁增删键值对的场景下表现更好。</p> - </td> - <td> - <p>在频繁添加和删除键值对的场景下未作出优化。</p> - </td> - </tr> - </tbody> -</table> - -<h2 id="构造函数">构造函数</h2> - -<dl> - <dt>{{jsxref("Global_Objects/Map/Map", "Map()")}}</dt> - <dd>创建 <code>Map</code> 对象</dd> -</dl> - -<h2 id="属性">属性</h2> - -<dl> - <dt><code>Map.length</code></dt> - <dd>属性 length 的值为 0 。<br> - 想要计算一个<code>Map</code> 中的条目数量, 使用 {{jsxref("Map.prototype.size")}}.</dd> - <dt>{{jsxref("Map.@@species", "get Map[@@species]")}}</dt> - <dd>本构造函数用于创建派生对象。</dd> - <dt>{{jsxref("Map.prototype")}}</dt> - <dd>表示 <code>Map</code> 构造器的原型。 允许添加属性从而应用于所有的 <code>Map</code> 对象。</dd> -</dl> - -<h2 id="Map_实例"><code>Map</code> 实例</h2> - -<p><font face="Open Sans, Arial, sans-serif">所有的 </font><code>Map</code> 对象实例都会继承 {{jsxref("Map.prototype")}}。</p> - -<h3 id="属性_2">属性</h3> - -<p>{{page('zh-CN/Web/JavaScript/Reference/Global_Objects/Map/prototype','属性')}}</p> - -<h3 id="方法">方法</h3> - -<p>{{page('zh-CN/Web/JavaScript/Reference/Global_Objects/Map/prototype','方法')}}</p> - -<h2 id="示例">示例</h2> - -<h3 id="使用_Map_对象">使用 <code>Map</code> 对象</h3> - -<pre class="brush: js">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 () {}</pre> - -<h3 id="将_NaN_作为_Map_的键">将 <code>NaN</code> 作为 <code>Map</code> 的键</h3> - -<p><code>NaN</code> 也可以作为<code>Map</code>对象的键。虽然 <code>NaN</code> 和任何值甚至和自己都不相等(<code>NaN !== NaN</code> 返回true),但下面的例子表明,<code>NaN</code>作为Map的键来说是没有<span><span>区别的</span></span>:</p> - -<pre class="brush: js">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" -</pre> - -<h3 id="使用_for..of_方法迭代_Map">使用 <code>for..of</code> 方法迭代 <code>Map</code></h3> - -<p><code>Map</code>可以使用<code>for..of</code>循环来实现迭代:</p> - -<pre class="brush: js">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"</pre> - -<h3 id="使用_forEach_方法迭代_Map">使用 <code>forEach()</code> 方法迭代 <code>Map</code></h3> - -<p><code>Map</code>也可以通过<code>forEach()</code>方法迭代:</p> - -<pre class="brush: js">myMap.forEach(function(value, key) { - console.log(key + " = " + value); -}) -// 将会显示两个logs。 一个是 "0 = zero" 另一个是 "1 = one" -</pre> - -<h3 id="Map_与数组的关系"><code>Map</code> 与数组的关系</h3> - -<pre class="brush: js">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"] -</pre> - -<h3 id="复制或合并_Maps">复制或合并 <code>Maps</code></h3> - -<p>Map 能像数组一样被复制:</p> - -<pre class="brush: js">let original = new Map([ - [1, 'one'] -]); - -let clone = new Map(original); - -console.log(clone.get(1)); // one -console.log(original === clone); // false. 浅比较 不为同一个对象的引用 -</pre> - -<div class="blockIndicator note"> -<p>重要:请记住,<em>数据本身</em>未被克隆。</p> -</div> - -<p>Map对象间可以进行合并,但是会保持键的唯一性。</p> - -<pre class="brush: js">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</pre> - -<p>Map对象也能与数组合并:</p> - -<pre class="brush: js">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</pre> - -<h2 id="使用说明">使用说明</h2> - -<p>请注意!为Map设置对象属性也是可以的,但是可能引起大量的混乱。</p> - -<p>所以,你还是<em>可以这样做.</em>..</p> - -<pre class="syntaxbox example-bad brush js">let wrongMap = new Map() -wrongMap['bla'] = 'blaa' -wrongMap['bla2'] = 'blaaa2' - -console.log(wrongMap) // Map { bla: 'blaa', bla2: 'blaaa2' } -</pre> - -<p>...但是,这样做的话,它的行为会不符合预期:</p> - -<pre class="syntaxbox example-bad brush js">wrongMap.has('bla') // false -wrongMap.delete('bla') // false -console.log(wrongMap) // Map { bla: 'blaa', bla2: 'blaaa2' }</pre> - -<p>无论如何,和正确用法比较起来,几乎没有什么不同: </p> - -<pre class="syntaxbox brush js example-good">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' }</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Specification</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-map-objects', 'Map')}}</td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性">浏览器兼容性</h2> - -<p>{{Compat("javascript.builtins.Map")}}</p> - -<h2 id="相关链接">相关链接</h2> - -<ul> - <li>{{jsxref("Set")}}</li> - <li>{{jsxref("WeakMap")}}</li> - <li>{{jsxref("WeakSet")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p><code><strong>keys()</strong></code> 返回一个引用的 <code><strong>Iterator</strong></code> 对象。它包含按照顺序插入 <code>Map</code> 对象中每个元素的key值。</p> - -<div>{{EmbedInteractiveExample("pages/js/map-prototype-keys.html")}}</div> - - - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox notranslate"><code><em>myMap</em>.keys()</code></pre> - -<h3 id="返回值">返回值</h3> - -<p>一个存在引用关系的 {{jsxref("Map")}} iterator 对象.</p> - -<h2 id="例子">例子</h2> - -<h3 id="使用_keys">使用 <code>keys()</code></h3> - -<pre class="brush:js notranslate">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 -</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">规范</th> - <th scope="col">状态</th> - <th scope="col">备注</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-map.prototype.keys', 'Map.prototype.keys')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-map.prototype.keys', 'Map.prototype.keys')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性">浏览器兼容性</h2> - - - -<p>{{Compat("javascript.builtins.Map.keys")}}</p> - -<h2 id="参见">参见</h2> - -<ul> - <li>{{jsxref("Map.prototype.entries()")}}</li> - <li>{{jsxref("Map.prototype.values()")}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<p><strong><code>Map()</code> 构造函数</strong> 创建 {{jsxref("Map")}} 对象.</p> - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox">new Map([<var>iterable</var>])</pre> - -<h3 id="参数">参数</h3> - -<dl> - <dt><code><var>iterable</var></code></dt> - <dd>Iterable 可以是一个{{jsxref("Array", "数组")}}或者其他 <a href="/zh-CN/docs/Web/JavaScript/Guide/iterable">iterable</a> 对象,其元素为键值对(两个元素的数组,例如: [[ 1, 'one' ],[ 2, 'two' ]])。 每个键值对都会添加到新的 Map。<code>null</code> 会被当做 <code>undefined。</code></dd> -</dl> - -<h2 id="示例">示例</h2> - -<pre class="brush: js">let myMap = new Map([ - [1, 'one'], - [2, 'two'], - [3, 'three'], -]) -</pre> - -<h2 id="Specifications">Specifications</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Specification</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-map-constructor', 'Map constructor')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility">Browser compatibility</h2> - - - -<p>{{Compat("javascript.builtins.Map.Map")}}</p> - -<h2 id="See_also">See also</h2> - -<ul> - <li>{{jsxref("Set")}}</li> - <li>{{jsxref("WeakMap")}}</li> - <li>{{jsxref("WeakSet")}}</li> -</ul> 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 ---- -<p id="sect1">{{JSRef}}</p> - -<p><code><strong>set()</strong></code> 方法为 <code>Map</code> 对象添加或更新一个指定了键(<code>key</code>)和值(<code>value</code>)的(新)键值对。</p> - -<div>{{EmbedInteractiveExample("pages/js/map-prototype-set.html")}}</div> - - - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox"><code><em>myMap</em>.set(key, value);</code></pre> - -<h3 id="参数">参数</h3> - -<dl> - <dt>key</dt> - <dd>要添加至相应 <code>Map</code> 对象的元素的键。</dd> - <dt>value</dt> - <dd>要添加至相应 <code>Map</code> 对象的元素的值。</dd> -</dl> - -<h3 id="返回值">返回值</h3> - -<p><code>Map</code> 对象</p> - -<h2 id="示例">示例</h2> - -<h3 id="使用_set_方法">使用 <code>set</code> 方法</h3> - -<pre class="brush: js">var myMap = new Map(); - -// 将一个新元素添加到 Map 对象 -myMap.set("bar", "foo"); -myMap.set(1, "foobar"); - -// 在Map对象中更新某个元素的值 -myMap.set("bar", "baz"); -</pre> - -<h3 id="链式使用_set_方法">链式使用 <code>set</code> 方法</h3> - -<p>因为 Set() 方法返回 Map 对象本身,所以你可以像下面这样链式调用它:</p> - -<pre class="brush: js">// Add new elements to the map with chaining. -myMap.set('bar', 'foo') - .set(1, 'foobar') - .set(2, 'baz'); -</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">规范</th> - <th scope="col">状态</th> - <th scope="col">备注</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-map.prototype.set', 'Map.prototype.set')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-map.prototype.set', 'Map.prototype.set')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性">浏览器兼容性</h2> - - - -<p>{{Compat("javascript.builtins.Map.set")}}</p> - -<h2 id="参见">参见</h2> - -<ul> - <li>{{jsxref("Map")}}</li> - <li>{{jsxref("Map.prototype.get()")}}</li> - <li>{{jsxref("Map.prototype.has()")}}</li> -</ul> 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 ---- -<div>{{JSRef}}<br> - </div> - -<p><code><strong>size</strong></code> 是可访问属性,用于返回 一个{{jsxref("Map")}} 对象的成员数量。</p> - -<p>{{EmbedInteractiveExample("pages/js/map-prototype-size.html")}}</p> - -<p>这个示例源码保存在GitHub:<a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a>。如果你想贡献代码,修改后在GitHub上发推送请求给我们。</p> - -<p> </p> - -<h2 id="描述">描述</h2> - -<p>size 属性的值是一个整数,表示 Map 对象有多少个键值对。size 是只读属性,用set 方法修改size返回 undefined,即不能改变它的值。</p> - -<h2 id="示例">示例</h2> - -<pre class="brush:js">var myMap = new Map(); -myMap.set("a", "alpha"); -myMap.set("b", "beta"); -myMap.set("g", "gamma"); - -myMap.size // 3 -</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-get-map.prototype.size', 'Map.prototype.size')}}</td> - <td>{{Spec2('ES6')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-get-map.prototype.size', 'Map.prototype.size')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容">浏览器兼容</h2> - -<p>此页的兼容性表格请查阅:<a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> <br> - 如果你想更新数据,请在GitHub上给我们发推送请求。</p> - -<div class="blockIndicator warning"> -<p><strong>异常提醒</strong></p> -</div> - -<ul> - <li>在JavaScript中直接书写Map.prototype.size可能得到以下异常:<br> - <code>Uncaught TypeError: Method get Map.prototype.size called on incompatible receiver #<Map></code><br> - 异常原因查看:<a href="/zh-CN/docs/">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Called_on_incompatible_type</a></li> -</ul> - -<h2 id="相关阅读">相关阅读</h2> - -<ul> - <li>{{jsxref("Map")}}</li> -</ul> 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 ---- -<div><code><strong>values()</strong></code> 方法返回一个新的Iterator对象。它包含按顺序插入Map对象中每个元素的value值。</div> - -<div> </div> - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox"><code><em>myMap</em>.values()</code></pre> - -<h3 id="返回值">返回值</h3> - -<p>一个新的 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Map" title="此页面仍未被本地化, 期待您的翻译!"><code>Map</code></a> 可迭代对象.</p> - -<h2 id="例子">例子</h2> - -<h3 id="使用_values()"><code>使用 values()</code></h3> - -<pre class="brush:js">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"</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">规范</th> - <th scope="col">状态</th> - <th scope="col">备注</th> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-map.prototype.values', 'Map.prototype.values')}}</td> - <td>{{Spec2('ES6')}}</td> - <td>初始定义</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-map.prototype.values', 'Map.prototype.values')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性">浏览器兼容性</h2> - -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Basic support</td> - <td>38</td> - <td>{{ CompatGeckoDesktop("20") }}</td> - <td>{{CompatNo}}</td> - <td>25</td> - <td>7.1</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>38</td> - <td>{{ CompatGeckoMobile("20") }}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>8</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="查看">查看</h2> - -<ul> - <li>{{jsxref("Map.prototype.entries()")}}</li> - <li>{{jsxref("Map.prototype.keys()")}}</li> -</ul> 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 ---- -<div>{{JSRef}} {{obsolete_header}}</div> - -<p><code><strong>clear()</strong></code> 方法用于删除 <code>WeakSet</code> 对象的所有元素,但是已经不是 ECMAScript 的一部分了。</p> - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox"><em>ws</em>.clear();</pre> - -<h2 id="示例">示例</h2> - -<h3 id="使用_clear方法">使用 <code>clear方法</code></h3> - -<pre class="brush: js example-bad">var ws = new WeakSet(); - -ws.add(window); -ws.has(window); // true - -ws.clear(); - -ws.has(window); // false -</pre> - -<h2 id="规范">规范</h2> - -<p>没有规范或草案。该方法原本计划包括在 ECMAScript 6,但是在草案 revision 28 (October 14, 2014) 被抛弃了。浏览器原先的实现不久后也被移除了,它从来不是标准的一分子。</p> - -<h2 id="浏览器支持">浏览器支持</h2> - -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Basic support</td> - <td>36</td> - <td>{{CompatNo}} [1]</td> - <td>{{CompatNo}}</td> - <td>23</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}} [1]</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<p>[1] Added to Firefox in version 34, but removed in version 46. See {{bug(1101817)}}.</p> - -<h2 id="相关">相关</h2> - -<ul> - <li>{{jsxref("WeakSet")}}</li> - <li>{{jsxref("WeakSet.prototype.delete()")}}</li> -</ul> 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 ---- -<div>{{jsSidebar("Operators")}} {{SeeCompatTable}}</div> - -<p>试验性的管道操作符 <code>|></code> (目前其标准化流程处于 stage 1 阶段)允许以一种易读的方式去对函数链式调用。本质上来说,管道操作符是单参数函数调用的语法糖,它允许你像这样执行一个调用:</p> - -<pre class="brush: js">let url = "%21" |> decodeURI;</pre> - -<p>使用传统语法写的话,等效的代码是这样的:</p> - -<pre class="brush: js">let url = decodeURI("%21"); -</pre> - -<h2 id="语法">语法</h2> - -<pre class="syntaxbox">expression |> function</pre> - -<h2 id="例子">例子</h2> - -<h3 id="函数链式调用">函数链式调用</h3> - -<p>当链式调用多个函数时,使用管道操作符可以改善代码的可读性。</p> - -<pre class="brush: js">const double = (n) => n * 2; -const increment = (n) => n + 1; - -// 没有用管道操作符 -double(increment(double(5))); // 22 - -// 用上管道操作符之后 -5 |> double |> increment |> double; // 22 -</pre> - -<h2 id="规范">规范</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">规范</th> - <th scope="col">状态</th> - <th scope="col">备注</th> - </tr> - </thead> - <tbody> - <tr> - <td><a href="http://tc39.github.io/proposal-pipeline-operator/">Pipeline operator draft</a></td> - <td>Stage 1</td> - <td>Not part of the ECMAScript specification yet.</td> - </tr> - </tbody> -</table> - -<h2 id="浏览器兼容性Edit">浏览器兼容性<a class="button section-edit only-icon" href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators$edit#浏览器兼容性" rel="nofollow, noindex"><span>Edit</span></a></h2> - -<div> - - -<p>{{Compat("javascript.operators.pipeline")}}</p> -</div> - -<h2 id="参见">参见</h2> - -<ul> - <li>GitHub 上的 <a href="https://github.com/tc39/proposals">TC39/proposals</a></li> -</ul> |