语法高亮,滚动条美化,设置页面调整

This commit is contained in:
fofolee
2019-04-19 02:41:09 +08:00
parent 1e8f76c000
commit 359d29ee0b
1590 changed files with 12328 additions and 11441 deletions

View File

@@ -2,7 +2,7 @@
<div></div>
<p> <strong><code>yield*</code> 表达式</strong>用于委托给另一个<a href="Reference/Statements/function*" title="function* 这种声明方式(function关键字后跟一个星号会定义一个生成器函数 (generator function),它返回一个  Generator  对象。"><code>generator</code></a> 或可迭代对象。</p>
<h2 id="Syntax" name="Syntax">语法</h2>
<pre class="syntaxbox"> yield* [[expression]];</pre>
<pre><code class="language-javascript"> yield* [[expression]];</code></pre>
<dl>
<dt><code>expression</code></dt>
<dd>返回一个可迭代对象的表达式。</dd>
@@ -13,7 +13,7 @@
<h2 id="Examples" name="Examples">示例</h2>
<h3 id="委托给其他生成器">委托给其他生成器</h3>
<p>以下代码中,<code>g1()</code> <code>yield</code> 出去的每个值都会在 <code>g2()</code> 的 <code>next()</code> 方法中返回,就像那些 <code>yield</code> 语句是写在 <code>g2()</code> 里一样。</p>
<pre class="brush: js">function* g1() {
<pre><code class="language-javascript">function* g1() {
yield 2;
yield 3;
yield 4;
@@ -33,10 +33,10 @@ console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { value: 4, done: false }
console.log(iterator.next()); // { value: 5, done: false }
console.log(iterator.next()); // { value: undefined, done: true }
</pre>
</code></pre>
<h3 id="委托给其他可迭代对象">委托给其他可迭代对象</h3>
<p>除了生成器对象这一种可迭代对象,<code>yield*</code> 还可以 <code>yield</code> 其它任意的可迭代对象,比如说数组、字符串、<code>arguments</code> 对象等等。</p>
<pre class="brush: js">function* g3() {
<pre><code class="language-javascript">function* g3() {
yield* [1, 2];
yield* "34";
yield* arguments;
@@ -51,10 +51,10 @@ console.log(iterator.next()); // { value: "4", done: false }
console.log(iterator.next()); // { value: 5, done: false }
console.log(iterator.next()); // { value: 6, done: false }
console.log(iterator.next()); // { value: undefined, done: true }
</pre>
</code></pre>
<h3 id="yield*_表达式的值"><code>yield*</code> 表达式的值</h3>
<p><code>yield*</code> 是一个表达式,不是语句,所以它会有自己的值。</p>
<pre class="brush: js">function* g4() {
<pre><code class="language-javascript">function* g4() {
yield* [1, 2, 3];
return "foo";
}
@@ -74,7 +74,7 @@ console.log(iterator.next()); // { value: undefined, done: true },
  // 此时 g4() 返回了 { value: "foo", done: true }
console.log(result); // "foo"
</pre>
</code></pre>
<h2 id="Specifications" name="Specifications">规范</h2>
<table class="standard-table">
<thead>
@@ -169,10 +169,10 @@ console.log(result); // "foo"
<ul>
<li>现在有行结束符限制。在 <code>yield</code><code>*</code> 之间不允许有换行符。如下代码会抛出<a href="Reference/Global_Objects/SyntaxError" title="SyntaxError 对象代表尝试解析语法上不合法的代码的错误。"><code>SyntaxError</code></a>
<pre class="brush: js">function* foo() {
<pre><code class="language-javascript">function* foo() {
yield
*[];
}</pre>
}</code></pre>
</li>
</ul>
</li>