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

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,8 +2,8 @@
<div></div>
<p><strong><code>for...in</code>语句</strong>以任意顺序遍历一个对象的<a href="Enumerability_and_ownership_of_properties">可枚举属性</a>。对于每个不同的属性,语句都会被执行。</p>
<h2 id="Syntax" name="Syntax">语法</h2>
<pre class="syntaxbox">for (<var>variable</var> in <var>object</var>) {<em>...</em>}
</pre>
<pre><code class="language-javascript">for (<var>variable</var> in <var>object</var>) {<em>...</em>}
</code></pre>
<dl>
<dt><code>variable</code></dt>
<dd>在每次迭代时,将不同的属性名分配给<em>变量</em></dd>
@@ -27,7 +27,7 @@
<p>如果你只要考虑对象本身的属性,而不是它的原型,那么使用 <a href="Reference/Global_Objects/Object/getOwnPropertyNames" title="Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名包括不可枚举属性但不包括Symbol值作为名称的属性组成的数组。"><code>getOwnPropertyNames()</code></a> 或执行 <a href="Reference/Global_Objects/Object/hasOwnProperty" title="hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性"><code>hasOwnProperty()</code></a> 来确定某属性是否是对象本身的属性(也能使用<a href="Reference/Global_Objects/Object/propertyIsEnumerable" title="propertyIsEnumerable() 方法返回一个布尔值,表示指定的属性是否可枚举。"><code>propertyIsEnumerable</code></a>)。或者,如果你知道不会有任何外部代码干扰,您可以使用检查方法扩展内置原型。</p>
<h2 id="Example" name="Example">示例</h2>
<p>下面的函数接受一个对象作为参数。被调用时迭代传入对象的所有可枚举属性然后返回一个所有属性名和其对应值的字符串。</p>
<pre class="brush: js">var obj = {a:1, b:2, c:3};
<pre><code class="language-javascript">var obj = {a:1, b:2, c:3};
for (var prop in obj) {
console.log("obj." + prop + " = " + obj[prop]);
@@ -36,9 +36,9 @@ for (var prop in obj) {
// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"</pre>
// "obj.c = 3"</code></pre>
<p>下面的函数说明了<a href="Reference/Global_Objects/Object/hasOwnProperty" title="hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性"><code>hasOwnProperty()</code></a>的用法:继承的属性不显示。</p>
<pre class="brush: js">var triangle = {a: 1, b: 2, c: 3};
<pre><code class="language-javascript">var triangle = {a: 1, b: 2, c: 3};
function ColoredTriangle() {
this.color = 'red';
@@ -55,7 +55,7 @@ for (var prop in obj) {
}
// Output:
// "obj.color = red"</pre>
// "obj.color = red"</code></pre>
<h2 id="规范">规范</h2>
<table class="standard-table">
<tbody>
@@ -142,14 +142,14 @@ for (var prop in obj) {
</abbr></span></dt><dd>Full support</dd></dl></section></div><p></p>
<h2 id="兼容性:初始化函数表达式">兼容性:初始化函数表达式</h2>
<p>在 SpiderMonkey 40 (Firefox 40 / Thunderbird 40 / SeaMonkey 2.37) 版本之前,可以在使用一个初始化表达式(<code>i=0</code>)在一个<code>for...in</code>循环中:</p>
<pre class="brush: js example-bad">var obj = {a: 1, b: 2, c: 3};
<pre><code class="language-js example-bad">var obj = {a: 1, b: 2, c: 3};
for (var i = 0 in obj) {
console.log(obj[i]);
}
// 1
// 2
// 3
</pre>
</code></pre>
<p><span style="line-height: 1.5;">这个非标准行为现在在版本40及更高版本中被忽略并将在严格模式<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=748550" rel="noopener" title="FIXED: Remove InitialiserNoIn[opt] from ... in for(var ... in obj) to help simplify ES6">bug 748550</a> 和 </span><a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1164741" rel="noopener" title="FIXED: Add back partial support for |for (var i = 0 in obj);| syntax, ignoring the initializer rather than failing on it">bug 1164741</a><span style="line-height: 1.5;">中呈现<a href="Reference/Global_Objects/SyntaxError" title="SyntaxError 对象代表尝试解析语法上不合法的代码的错误。"><code>SyntaxError</code></a>"<a href="Reference/Errors/Invalid_for-in_initializer">for-in loop head declarations may not have initializers</a>")错误。</span></p>
<p><span style="line-height: 1.5;">像其他引擎 V8(Chrome)</span>Chakra (IE/Edge) JSC (WebKit/Safari) 正在研究去除这种不标准的行为。</p>
<h2 id="相关链接">相关链接</h2>