<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>子叶：子乌的叶子 &#187; 循环</title>
	<atom:link href="http://sheneyan.com/blog/tag/loop/feed/" rel="self" type="application/rss+xml" />
	<link>http://sheneyan.com/blog</link>
	<description>指穷于为薪，火传也，不知其尽也。---《养生主》</description>
	<lastBuildDate>Tue, 17 Jan 2012 03:05:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>post内分页及标签修改</title>
		<link>http://sheneyan.com/blog/2009/12/paged-post-and-plugin-edit/</link>
		<comments>http://sheneyan.com/blog/2009/12/paged-post-and-plugin-edit/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 20:42:03 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[html实体]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wap]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress插件]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[循环]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=549</guid>
		<description><![CDATA[<p>之前闲来无事（也不是无事，只是不想干活的借口 <img src='http://sheneyan.com/blog/wp-includes/images/smilies/icon_neutral.gif' alt=':-&#124;' class='wp-smiley' />  ），做了一个专门放书的网站<a href="http://sheneyan.com/plagiarist" rel="external" title="文抄公">文抄公</a>，然后四处搜罗txt格式的书往上面直接就是一扔，扔着是爽了，可是看的时候很痛苦，为啥内？因为post内分页的问题……</p>
<p>wordpress的post内分页的实现我想很多人都知道，就是在文章内简单地插入一个&#60;!&#8211;nextpage&#8211;&#62;注释即可，然后就会看到页面下方中出现了一个个可爱的数字链接，点一点就会跳到相应的页面去，不用担心由于不停地滚动屏幕造成键盘pagedown键或者鼠标滚轮的过劳死，不过，当文章非常之长，分页非常之多的时候，将会出现如下图所示的诡异场面：</p>
<p><img src="http://sheneyan.com/blog/wp-content/uploads/2009/12/page.jpg" alt="一堆翻页" title="一堆翻页" width="528" height="139" class="alignnone size-full wp-image-550" /></p>
<p>这80多个连接还[......]</p><p class='read-more'><a href='http://sheneyan.com/blog/2009/12/paged-post-and-plugin-edit/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>之前闲来无事（也不是无事，只是不想干活的借口 <img src='http://sheneyan.com/blog/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' />  ），做了一个专门放书的网站<a href="http://sheneyan.com/plagiarist" rel="external" title="文抄公">文抄公</a>，然后四处搜罗txt格式的书往上面直接就是一扔，扔着是爽了，可是看的时候很痛苦，为啥内？因为post内分页的问题……</p>
<p>wordpress的post内分页的实现我想很多人都知道，就是在文章内简单地插入一个&lt;!&#8211;nextpage&#8211;&gt;注释即可，然后就会看到页面下方中出现了一个个可爱的数字链接，点一点就会跳到相应的页面去，不用担心由于不停地滚动屏幕造成键盘pagedown键或者鼠标滚轮的过劳死，不过，当文章非常之长，分页非常之多的时候，将会出现如下图所示的诡异场面：</p>
<p><img src="http://sheneyan.com/blog/wp-content/uploads/2009/12/page.jpg" alt="一堆翻页" title="一堆翻页" width="528" height="139" class="alignnone size-full wp-image-550" /></p>
<p>这80多个连接还是在我将每页的内容扩大之后的结果，如果按照原来的排版，将会出现100多个连接！那么接下来要做的事，就是让我们去找插件吧 <img src='http://sheneyan.com/blog/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' />  。嗯，于是，我遇到了<a href="http://www.elektroelch.de/hacks/wp/pagebar/" rel="external" "wordpress插件pageBarV2的主页">pageBar V2</a>。应该说这个插件做的事情很简单，就是干掉多余的链接，试用过后效果还是比较显著的，至少对于正常的阅读来说，不会再担心容易点错连接的问题，效果如下图：</p>
<p><img src="http://sheneyan.com/blog/wp-content/uploads/2009/12/page1.jpg" alt="减少了一堆超链接，看着清新多了" title="减少了一堆超链接，看着清新多了" width="425" height="80" class="alignnone size-full wp-image-551" /></p>
<p>不过这个插件在使用的时候需要注意几点：</p>
<ol>
<li>
<p>它自己号称能自动插入页面，可惜的是，它自动插入的是外部页面而不是post页，如果原来已经使用了诸如wp_pagenavi的插件的话，那还是取消自动插入吧，否则你会看到街面上出现两个超链接列表，有点无所适从（而且它所谓的去除原有超链接列表的功能应该是针对wordpress最原始的那个上一页下一页的超链接而已，对wp_pagenavi并不起作用，它所谓的去除只是设置了样式表为display:none而已。)</p>
</li>
<li>
<p>需要手动修改页面模板，将原有使用的代码如：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?</span> wp_link_pages<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>替换成：</p>
<pre lang="php4 escaped="true">
< ?php if (function_exists('multipagebar'))
         multipagebar(); ?>
</pre>
<p>如果原来没有调用<code>wp_link_page()</code>的话，则可以直接插将上述代码放置在<code>the_content('......');</code>之后。</p>
</li>
</ol>
<p>在解决完正常页面下显示的问题之后，试着看了一下wap下的显示效果，结果……又看到一屏幕的超链接……由于在手机上，这么多的超链接的视觉震撼效果更加强烈。</p>
<p>由于用的是wp-t-wap插件，不大可能去直接调用pagebar，在想了一下之后，还是直接修改wp-t-wap插件吧。下面是大致的修改步骤（需要说明的是，wp-t-wap的wap实现机制是将插件中的子目录wap完全复制到系统根目录中，所以修改的时候记得修改2份，以免由于有时候禁用/启用插件而导致问题的重复出现）：</p>
<p>找到插件目录，一般是/站点地址/wp-content/plugins/wp-t-wap/，它下面会有一个子目录wap，我们要修改的内容就是其中的functions.php（wp-t-wap的实现其实就是实现一个简化版的wordpress，调用相对简单的函数而已）。找到其中的函数<code>_wap_link_pages</code>。正常情况下，需要修改部分的代码应该是长成这个样子：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$output</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$before</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$numpages</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$j</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$i</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$pagelink</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' '</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$more</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$i</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;a href=&quot;'</span> <span style="color: #339933;">.</span> _get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;a href=&quot;'</span> <span style="color: #339933;">.</span> _get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&amp;page='</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$j</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$more</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/a&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>这段代码干的活就是从1开始遍历输出所有的超链接，如果是当前页则没连接之类，一看就和wordpress默认的实现基本一致，在少数据量的情况下自然无碍，不过就不适应我的情况了。而我要做的事情很简单，留头留尾留中间，和三个点距离过远的全部掐掉，代码很简单，看看应该也会自行修改，就不废话了：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$before</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$flag</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$numpages</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$j</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$i</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$pagelink</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">abs</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">-</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;=</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">||</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;=</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">||</span><span style="color: #000088;">$i</span><span style="color: #339933;">&gt;=</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$numpages</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' '</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$more</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$i</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;a href=&quot;'</span> <span style="color: #339933;">.</span> _get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;a href=&quot;'</span> <span style="color: #339933;">.</span> _get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&amp;page='</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$j</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$more</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/a&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$page</span><span style="color: #339933;">&amp;&amp;</span><span style="color: #000088;">$flag</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$output</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">'&amp;hellip;&amp;hellip;'</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$flag</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&gt;</span><span style="color: #000088;">$page</span><span style="color: #339933;">&amp;&amp;</span><span style="color: #000088;">$flag</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$output</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">'&amp;hellip;&amp;hellip;'</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$flag</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>我在循环中判断一下当前变量<var>$i</var>的取值范围，如果变量在自己周围(<code>abs($i-$page)</code>)的9步内（前后各4个，不包括当前页）或者在头的三个范围内或者尾的三个范围内，则输出超链接，否则输出省略号&hellip;（就是我上一篇日志中苦苦寻找的html实体字符编码），并做标记，免得给我输出上百个省略号。然后，没有然后了，然后就实现了想要的功能，大功告成（记得复制到根目录的wap/下~~），最终wap效果图如下：</p>
<p><img src="http://sheneyan.com/blog/wp-content/uploads/2009/12/page2.jpg" alt="wap下的导航超链接" title="wap下的导航超链接" width="336" height="75" class="alignnone size-full wp-image-556"  style="border:solid 2px black;padding:5px;"/></p>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2009/12/paged-post-and-plugin-edit/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>循环的效率</title>
		<link>http://sheneyan.com/blog/2006/07/the-efficiency-of-javascript-loop/</link>
		<comments>http://sheneyan.com/blog/2006/07/the-efficiency-of-javascript-loop/#comments</comments>
		<pubDate>Wed, 05 Jul 2006 02:03:28 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[日记]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[循环]]></category>
		<category><![CDATA[效率]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=283</guid>
		<description><![CDATA[<p>今天有人问到如何优化一段js代码，我看到他用的是简单的&#60;code>for(;;)，我随口说了使用for(in)来优化，因为我觉得for(in)看起来比较短，他觉得不是，他说他以前看过文章，说for(in)的效率低下，于是我作了如下一个测试。</p>
<p>这是for(in)的代码：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&#160;&#160;Javascript</div><span style="color: #003366; font-weight: bold;">var</span> arr<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&#60;</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>a <span style="color: #000066; font-weight: bold;">in</span> arr<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123[......]</span></div></div><p class='read-more'><a href='http://sheneyan.com/blog/2006/07/the-efficiency-of-javascript-loop/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>今天有人问到如何优化一段js代码，我看到他用的是简单的&lt;code>for(;;)，我随口说了使用for(in)来优化，因为我觉得for(in)看起来比较短，他觉得不是，他说他以前看过文章，说for(in)的效率低下，于是我作了如下一个测试。</p>
<p>这是for(in)的代码：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;Javascript</div><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> arr<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>a <span style="color: #000066; font-weight: bold;">in</span> arr<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>d<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这是for(;;)的代码：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;Javascript</div><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> arr<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> a<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>a <span style="color: #339933;">&lt;</span> arr .<span style="color: #660066;">length</span><span style="color: #339933;">;</span>a<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>d<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>结果令我大吃一惊，for(in)耗时居然为0，而for(;;)却总是无法完成任务&#8230;，难道for(in)的效率奇高吗？不可能吧？</p>
<p>我的第一感觉就是for(in)对空数组(数组内容是undefined)感冒，会跳过去，后来作的另一个测试证明了这一点：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;Javascript</div><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> arr<span style="color: #339933;">=</span><span style="color: #009900;">&#91;</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,,</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>a <span style="color: #000066; font-weight: bold;">in</span> arr<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span></pre></div></div>

<p>这个测试的结果就是数组的第二个元素（为空）会被跳过去。。</p>
<p>在证明了这一点之后，我将程序改为如下：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;Javascript</div><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> arr<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.;.&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> a<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>a <span style="color: #339933;">&lt;</span> arr .<span style="color: #660066;">length</span><span style="color: #339933;">;</span>a<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>d<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>a <span style="color: #000066; font-weight: bold;">in</span> arr<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>d<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>测试结果证实了网友的说法，for(in)的效率极低，已经不是一个数量级的差距，是10几倍的差距。接下来，我继续深入作了一个测试，把我知道的几种遍历方式都进行了一次比较：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;Javascript</div><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> arr<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.;.&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> a<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>a <span style="color: #339933;">&lt;</span> arr .<span style="color: #660066;">length</span><span style="color: #339933;">;</span>a<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;for(;;)=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>d<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>a <span style="color: #000066; font-weight: bold;">in</span> arr<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;for(in)=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>d<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> a<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>c<span style="color: #339933;">;</span>c<span style="color: #339933;">=</span>arr<span style="color: #009900;">&#91;</span>a<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>a<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;for(a,c;;)=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>d<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> a<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>arr<span style="color: #009900;">&#91;</span>a<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;while()=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>d<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>测试结果是（由快到慢）：for(;;)&lt;while ()&lt;for(a,c)&lt;for(in)，前面几个的差距在小数量级的循环下可以接受，而for(in)所消耗的时间实在是不敢恭维。。。</p>
<p>其中，for(a,c)是我的教训。。。我在没有进行任何对比测试的时候，就偏信网上某贴上的评论，认为它的速度比for(;;)还快。。。唉。。。</p>
<p>最后，再测试一下多一个变量是否会进一步提升for(;;)的速度。</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;Javascript</div><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> arr<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.;.&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">1000</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> a<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>a <span style="color: #339933;">&lt;</span> arr .<span style="color: #660066;">length</span><span style="color: #339933;">;</span>a<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;for(;;)=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>d<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
d<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> l<span style="color: #339933;">=</span>arr.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">1000</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> a<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>a <span style="color: #339933;">&lt;</span> l<span style="color: #339933;">;</span>a<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;for(;l;)=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>d<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>还是有满明显的效率提升滴～～点击下面这个按钮实际查看它们的运算速度：</p>
<p><button onclick="testLoop()">测试</button></p>
<div id="__testLoop"></div>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2006/07/the-efficiency-of-javascript-loop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

