mod highline
diff --git a/2015/05/29/javascript-note-01/index.html b/2015/05/29/javascript-note-01/index.html
index 46dba23..0a459f1 100644
--- a/2015/05/29/javascript-note-01/index.html
+++ b/2015/05/29/javascript-note-01/index.html
@@ -218,37 +218,37 @@
 
       
         <h3 id="什么是数组">什么是数组</h3><p>通常数组是一种线性结构,但是JavaScript中的数组是一个<strong>特殊的对象</strong>,其索引值在内部被转换成字符串处理。</p>
-<h3 id="创建数组">创建数组</h3><figure class="highlight smali"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">var<span class="instruction"> array </span>= <span class="keyword">[</span>];   //length = 0</span><br><span class="line">var<span class="instruction"> array </span>= <span class="keyword">[</span>10]; //length = 1</span><br><span class="line">var<span class="instruction"> array </span>= <span class="keyword">[</span>1,2,3,4,5];//length = 5</span><br><span class="line">var<span class="instruction"> array </span>=<span class="instruction"> new </span>Array(<span class="function">)</span>; //length = 0</span><br><span class="line">var<span class="instruction"> array </span>=<span class="instruction"> new </span>Array(10<span class="function">)</span>; //length = 10</span><br><span class="line">var<span class="instruction"> array </span>=<span class="instruction"> new </span>Array(1,2,3,4,6<span class="function">)</span>; //length = 5</span><br></pre></td></tr></table></figure>
+<h3 id="创建数组">创建数组</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> array = [];   <span class="comment">//length = 0</span></span><br><span class="line"><span class="keyword">var</span> array = [<span class="number">10</span>]; <span class="comment">//length = 1</span></span><br><span class="line"><span class="keyword">var</span> array = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>];<span class="comment">//length = 5</span></span><br><span class="line"><span class="keyword">var</span> array = <span class="keyword">new</span> <span class="built_in">Array</span>(); <span class="comment">//length = 0</span></span><br><span class="line"><span class="keyword">var</span> array = <span class="keyword">new</span> <span class="built_in">Array</span>(<span class="number">10</span>); <span class="comment">//length = 10</span></span><br><span class="line"><span class="keyword">var</span> array = <span class="keyword">new</span> <span class="built_in">Array</span>(<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">6</span>); <span class="comment">//length = 5</span></span><br></pre></td></tr></table></figure>
 <p><em>使用[]创建数组的效率高,因为字符少。</em></p>
 <a id="more"></a>
-<h3 id="遍历数组">遍历数组</h3><figure class="highlight matlab"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">var nums = <span class="matrix">[<span class="number">1</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>,<span class="number">6</span>]</span>;</span><br><span class="line"><span class="keyword">for</span>(var <span class="built_in">i</span> = <span class="number">0</span>; <span class="built_in">i</span> &lt; nums.<span class="built_in">length</span>; ++<span class="built_in">i</span>)<span class="cell">&#123;</span><br><span class="line">    console.log(nums[i]);  //<span class="number">1</span> <span class="number">23</span> <span class="number">4</span> <span class="number">5</span> <span class="number">6</span></span><br><span class="line">&#125;</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span>(var <span class="built_in">i</span> = <span class="number">0</span>; <span class="built_in">i</span> &lt; nums.<span class="built_in">length</span>; ++<span class="built_in">i</span>)<span class="cell">&#123;</span><br><span class="line">    nums[i] = i;</span><br><span class="line">&#125;</span></span><br></pre></td></tr></table></figure>
+<h3 id="遍历数组">遍历数组</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> nums = [<span class="number">1</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>,<span class="number">6</span>];</span><br><span class="line"><span class="keyword">for</span>(<span class="keyword">var</span> i = <span class="number">0</span>; i &lt; nums.length; ++i)&#123;</span><br><span class="line">    <span class="built_in">console</span>.log(nums[i]);  <span class="comment">//1 23 4 5 6</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span>(<span class="keyword">var</span> i = <span class="number">0</span>; i &lt; nums.length; ++i)&#123;</span><br><span class="line">    nums[i] = i;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
 <p>length属性反映的是当前数组中元素的个数,使用它,可以确保循环遍历了数组中的所有元素。</p>
-<h3 id="字符串生成数组">字符串生成数组</h3><figure class="highlight applescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">var sentence = <span class="string">"the quick brown fox jumped over the lazy dog"</span>;</span><br><span class="line">var <span class="property">words</span> = sentence.split(<span class="string">" "</span>);</span><br><span class="line"><span class="keyword">for</span> (var i = <span class="number">0</span>; i &lt; <span class="property">words</span>.<span class="property">length</span>; ++i) </span><br><span class="line">    console.<span class="command">log</span>(<span class="string">"word "</span> + i + <span class="string">": "</span> + <span class="property">words</span>[i]);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
-<h3 id="数组的类方法">数组的类方法</h3><figure class="highlight cs"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">bool</span> = Array.isArray(<span class="keyword">var</span>);<span class="comment">//检查变量是否为数组</span></span><br></pre></td></tr></table></figure>
-<h3 id="数组的属性">数组的属性</h3><p><strong>获取长度</strong><br><figure class="highlight delphi"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> nums = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>];</span><br><span class="line">length = <span class="keyword">array</span>.length;<span class="comment">//length = 5</span></span><br></pre></td></tr></table></figure></p>
-<h3 id="数组的对象方法">数组的对象方法</h3><p><strong>查找元素</strong><br><figure class="highlight fortran"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">/*</span><br><span class="line"><span class="built_in">index</span>:</span><br><span class="line">查找到返回下标</span><br><span class="line">查找失败返回-<span class="number">1</span></span><br><span class="line">*/</span><br><span class="line"><span class="built_in">index</span> = array.indexOf(<span class="keyword">value</span>);//从前往后找元素<span class="keyword">value</span>,找到<span class="number">1</span>个就返回</span><br><span class="line"><span class="built_in">index</span> = array.lastIndexOf(<span class="keyword">value</span>);// 从后往前找元素<span class="keyword">value</span>,找到<span class="number">1</span>个就返回</span><br></pre></td></tr></table></figure></p>
-<p><strong>数组转字符串</strong><br><figure class="highlight lasso"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">string</span> <span class="subst">=</span> <span class="built_in">array</span><span class="built_in">.</span><span class="keyword">join</span>();  <span class="comment">//1,2,3,4,5</span></span><br><span class="line"><span class="built_in">string</span> <span class="subst">=</span> <span class="built_in">array</span><span class="built_in">.</span>toString();  <span class="comment">//1,2,3,4,5</span></span><br><span class="line"><span class="built_in">string</span> <span class="subst">=</span> <span class="built_in">array</span><span class="built_in">.</span><span class="keyword">join</span>(<span class="string">'-'</span>);<span class="comment">//1-2-3-4</span></span><br></pre></td></tr></table></figure></p>
-<p><strong>拼接数组</strong><br><figure class="highlight kotlin"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable"><span class="keyword">var</span> a</span> = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>];</span><br><span class="line"><span class="variable"><span class="keyword">var</span> b</span> = [<span class="number">4</span>,<span class="number">5</span>,<span class="number">6</span>];</span><br><span class="line"></span><br><span class="line"><span class="variable"><span class="keyword">var</span> c</span> = a.concat(b);</span><br><span class="line"><span class="comment">//c = [ 1, 2, 3, 4, 5, 6 ]</span></span><br><span class="line"><span class="variable"><span class="keyword">var</span> c</span> = b.concat(a);</span><br><span class="line"><span class="comment">//c = [ 4, 5, 6, 1, 2, 3 ]</span></span><br></pre></td></tr></table></figure></p>
-<p><strong>添加元素</strong><br>push和unshift都返回数组的新长度.<br><figure class="highlight smali"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">//push方法在数组的尾部添加元素</span><br><span class="line">//unshift方法在数组的头部添加元素</span><br><span class="line">var<span class="instruction"> array </span>= <span class="keyword">[</span>1,2,3];</span><br><span class="line">array.push(4<span class="function">)</span>;//<span class="keyword">[</span>1,2,3,4]   rtn = length =  4</span><br><span class="line">array.unshift(0<span class="function">)</span>;//<span class="keyword">[</span>0,1,2,3,4] rtn = length =  5</span><br></pre></td></tr></table></figure></p>
-<p><strong>删除元素</strong><br>pop和shift都返回被删除元素组成的数组<br><figure class="highlight smali"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">//pop方法在数组的尾部删除元素</span><br><span class="line">//shift方法在数组的头部删除元素</span><br><span class="line">var<span class="instruction"> array </span>= <span class="keyword">[</span>0,1,2,3,4];</span><br><span class="line">array.pop(<span class="function">)</span>;//<span class="keyword">[</span>0,1,2,3]   rtn = 4</span><br><span class="line">array.shift(<span class="function">)</span>;//<span class="keyword">[</span>1,2,3] rtn= 0</span><br></pre></td></tr></table></figure></p>
+<h3 id="字符串生成数组">字符串生成数组</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> sentence = <span class="string">"the quick brown fox jumped over the lazy dog"</span>;</span><br><span class="line"><span class="keyword">var</span> words = sentence.split(<span class="string">" "</span>);</span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">var</span> i = <span class="number">0</span>; i &lt; words.length; ++i) </span><br><span class="line">    <span class="built_in">console</span>.log(<span class="string">"word "</span> + i + <span class="string">": "</span> + words[i]);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+<h3 id="数组的类方法">数组的类方法</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">bool = <span class="built_in">Array</span>.isArray(<span class="keyword">var</span>);<span class="comment">//检查变量是否为数组</span></span><br></pre></td></tr></table></figure>
+<h3 id="数组的属性">数组的属性</h3><p><strong>获取长度</strong><br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> nums = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>];</span><br><span class="line">length = array.length;<span class="comment">//length = 5</span></span><br></pre></td></tr></table></figure></p>
+<h3 id="数组的对象方法">数组的对象方法</h3><p><strong>查找元素</strong><br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/*</span><br><span class="line">index:</span><br><span class="line">查找到返回下标</span><br><span class="line">查找失败返回-1</span><br><span class="line">*/</span></span><br><span class="line">index = array.indexOf(value);<span class="comment">//从前往后找元素value,找到1个就返回</span></span><br><span class="line">index = array.lastIndexOf(value);<span class="comment">// 从后往前找元素value,找到1个就返回</span></span><br></pre></td></tr></table></figure></p>
+<p><strong>数组转字符串</strong><br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">string = array.join();  <span class="comment">//1,2,3,4,5</span></span><br><span class="line">string = array.toString();  <span class="comment">//1,2,3,4,5</span></span><br><span class="line">string = array.join(<span class="string">'-'</span>);<span class="comment">//1-2-3-4</span></span><br></pre></td></tr></table></figure></p>
+<p><strong>拼接数组</strong><br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> a = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>];</span><br><span class="line"><span class="keyword">var</span> b = [<span class="number">4</span>,<span class="number">5</span>,<span class="number">6</span>];</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> c = a.concat(b);</span><br><span class="line"><span class="comment">//c = [ 1, 2, 3, 4, 5, 6 ]</span></span><br><span class="line"><span class="keyword">var</span> c = b.concat(a);</span><br><span class="line"><span class="comment">//c = [ 4, 5, 6, 1, 2, 3 ]</span></span><br></pre></td></tr></table></figure></p>
+<p><strong>添加元素</strong><br>push和unshift都返回数组的新长度.<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//push方法在数组的尾部添加元素</span></span><br><span class="line"><span class="comment">//unshift方法在数组的头部添加元素</span></span><br><span class="line"><span class="keyword">var</span> array = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>];</span><br><span class="line">array.push(<span class="number">4</span>);<span class="comment">//[1,2,3,4]   rtn = length =  4</span></span><br><span class="line">array.unshift(<span class="number">0</span>);<span class="comment">//[0,1,2,3,4] rtn = length =  5</span></span><br></pre></td></tr></table></figure></p>
+<p><strong>删除元素</strong><br>pop和shift都返回被删除元素组成的数组<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//pop方法在数组的尾部删除元素</span></span><br><span class="line"><span class="comment">//shift方法在数组的头部删除元素</span></span><br><span class="line"><span class="keyword">var</span> array = [<span class="number">0</span>,<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>];</span><br><span class="line">array.pop();<span class="comment">//[0,1,2,3]   rtn = 4</span></span><br><span class="line">array.shift();<span class="comment">//[1,2,3] rtn= 0</span></span><br></pre></td></tr></table></figure></p>
 <p><strong>splice操作</strong><br>被删除元素数组 =  splice(起始位置, 删除字符数,  插入的字符…)</p>
 <ul>
 <li>起始索引(也就是你希望开始添加元素的地方) ;</li>
 <li>需要删除的元素个数(添加元素时该参数设为 0) ;</li>
 <li>想要添加进数组的元素。</li>
 </ul>
-<p>先<strong>删除</strong>元素,再<strong>增加</strong>元素.<br><figure class="highlight inform7"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">var nums = <span class="comment">[1,2,3,4,5]</span>;</span><br><span class="line">nums.splice(2,0);//rtn = <span class="comment">[]</span> nums = <span class="comment">[ 1, 2, 3, 4, 5 ]</span></span><br><span class="line">nums.splice(2,1);//rtn =<span class="comment">[ 3 ]</span> nums = <span class="comment">[ 1, 2, 4, 5 ]</span></span><br><span class="line">nums.splice(2,2);//rtn = <span class="comment">[ 4, 5 ]</span>  nums = <span class="comment">[ 1, 2 ]</span></span><br><span class="line">nums.splice(2,0,10,20,30);//rtn = <span class="comment">[]</span>  nums = <span class="comment">[ 1, 2, 10, 20, 30 ]</span></span><br><span class="line">nums.splice(1,1,40);//rtn = <span class="comment">[ 2 ]</span>  nums = <span class="comment">[ 1, 40, 10, 20, 30 ]</span></span><br></pre></td></tr></table></figure></p>
-<p><strong>数组排序</strong><br>reverse方法是将数组反转<br><figure class="highlight smali"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">var<span class="instruction"> array </span>= <span class="keyword">[</span>1,2,3,4,5];</span><br><span class="line">array.reverse(<span class="function">)</span>;//rtn =<span class="instruction"> array </span>=  <span class="keyword">[</span> 5, 4, 3, 2, 1 ];</span><br></pre></td></tr></table></figure></p>
-<p>sort方法默认是按照字典顺序进行排序<br>适用于字符串排序,对于数字排序不适用.<br><em>数组本身被改变</em><br>Array = sort([function compare]);<br><figure class="highlight actionscript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> words = [<span class="string">'one'</span>,<span class="string">'two'</span>,<span class="string">'three'</span>,<span class="string">'four'</span>];</span><br><span class="line">words.sort();<span class="comment">//[ 'four', 'one', 'three', 'two' ]</span></span><br><span class="line"><span class="keyword">var</span> nums = [<span class="number">4</span>,<span class="number">5</span>,<span class="number">2</span>,<span class="number">20</span>,<span class="number">11</span>,<span class="number">1</span>,<span class="number">10</span>,<span class="number">11</span>,<span class="number">23</span>,<span class="number">42</span>];</span><br><span class="line">nums.sort();<span class="comment">//[ 1, 10, 11, 11, 2, 20, 23, 4, 42, 5 ]</span></span><br><span class="line">nums.sort(<span class="function"><span class="keyword">function</span><span class="params">(a,b)</span></span>&#123;<span class="keyword">return</span> a-b; &#125;);<span class="comment">//[ 1, 2, 4, 5, 10, 11, 11, 20, 23, 42 ]</span></span><br><span class="line">nums.sort(<span class="function"><span class="keyword">function</span><span class="params">(a,b)</span></span>&#123;<span class="keyword">return</span> b-a; &#125;);<span class="comment">//[ 42, 23, 20, 11, 11, 10, 5, 4, 2, 1 ]</span></span><br></pre></td></tr></table></figure></p>
-<h3 id="迭代器">迭代器</h3><p>forEach() 该方法接受一个函数作为参数,对数组中的每个元素使用该函数.<br><figure class="highlight openscad"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">square</span><span class="params">(num)</span>&#123;</span></span><br><span class="line">    console.<span class="built_in">log</span><span class="params">(num, num* num)</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">var nums = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>];</span><br><span class="line">nums.forEach<span class="params">(square)</span>;</span><br></pre></td></tr></table></figure></p>
+<p>先<strong>删除</strong>元素,再<strong>增加</strong>元素.<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> nums = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>];</span><br><span class="line">nums.splice(<span class="number">2</span>,<span class="number">0</span>);<span class="comment">//rtn = [] nums = [ 1, 2, 3, 4, 5 ]</span></span><br><span class="line">nums.splice(<span class="number">2</span>,<span class="number">1</span>);<span class="comment">//rtn =[ 3 ] nums = [ 1, 2, 4, 5 ]</span></span><br><span class="line">nums.splice(<span class="number">2</span>,<span class="number">2</span>);<span class="comment">//rtn = [ 4, 5 ]  nums = [ 1, 2 ]</span></span><br><span class="line">nums.splice(<span class="number">2</span>,<span class="number">0</span>,<span class="number">10</span>,<span class="number">20</span>,<span class="number">30</span>);<span class="comment">//rtn = []  nums = [ 1, 2, 10, 20, 30 ]</span></span><br><span class="line">nums.splice(<span class="number">1</span>,<span class="number">1</span>,<span class="number">40</span>);<span class="comment">//rtn = [ 2 ]  nums = [ 1, 40, 10, 20, 30 ]</span></span><br></pre></td></tr></table></figure></p>
+<p><strong>数组排序</strong><br>reverse方法是将数组反转<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> array = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>];</span><br><span class="line">array.reverse();<span class="comment">//rtn = array =  [ 5, 4, 3, 2, 1 ];</span></span><br></pre></td></tr></table></figure></p>
+<p>sort方法默认是按照字典顺序进行排序<br>适用于字符串排序,对于数字排序不适用.<br><em>数组本身被改变</em><br>Array = sort([function compare]);<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> words = [<span class="string">'one'</span>,<span class="string">'two'</span>,<span class="string">'three'</span>,<span class="string">'four'</span>];</span><br><span class="line">words.sort();<span class="comment">//[ 'four', 'one', 'three', 'two' ]</span></span><br><span class="line"><span class="keyword">var</span> nums = [<span class="number">4</span>,<span class="number">5</span>,<span class="number">2</span>,<span class="number">20</span>,<span class="number">11</span>,<span class="number">1</span>,<span class="number">10</span>,<span class="number">11</span>,<span class="number">23</span>,<span class="number">42</span>];</span><br><span class="line">nums.sort();<span class="comment">//[ 1, 10, 11, 11, 2, 20, 23, 4, 42, 5 ]</span></span><br><span class="line">nums.sort(<span class="function"><span class="keyword">function</span>(<span class="params">a,b</span>)</span>&#123;<span class="keyword">return</span> a-b; &#125;);<span class="comment">//[ 1, 2, 4, 5, 10, 11, 11, 20, 23, 42 ]</span></span><br><span class="line">nums.sort(<span class="function"><span class="keyword">function</span>(<span class="params">a,b</span>)</span>&#123;<span class="keyword">return</span> b-a; &#125;);<span class="comment">//[ 42, 23, 20, 11, 11, 10, 5, 4, 2, 1 ]</span></span><br></pre></td></tr></table></figure></p>
+<h3 id="迭代器">迭代器</h3><p>forEach() 该方法接受一个函数作为参数,对数组中的每个元素使用该函数.<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">square</span>(<span class="params">num</span>)</span>&#123;</span><br><span class="line">    <span class="built_in">console</span>.log(num, num* num);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> nums = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>];</span><br><span class="line">nums.forEach(square);</span><br></pre></td></tr></table></figure></p>
 <p>every(), 该方法接受一个返回值为布尔类型的函数, 对数组中的每个元素使用该函数。 如果对于所有的元素, 该函数均返回 true, 则该方法返回 true。<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> nums = [<span class="number">2</span>,<span class="number">4</span>,<span class="number">6</span>,<span class="number">8</span>,<span class="number">10</span>];</span><br><span class="line"><span class="keyword">var</span> rtn = nums.every(<span class="function"><span class="keyword">function</span>(<span class="params">num</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">return</span> num%<span class="number">2</span>==<span class="number">0</span>;</span><br><span class="line">&#125;);</span><br><span class="line"><span class="built_in">console</span>.log(rtn); <span class="comment">// true</span></span><br></pre></td></tr></table></figure></p>
 <p>some() 方法也接受一个返回值为布尔类型的函数, 只要有一个元素使得该函数返回 true,该方法就返回 true。<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> nums = [<span class="number">2</span>,<span class="number">3</span>,<span class="number">5</span>,<span class="number">7</span>,<span class="number">9</span>];</span><br><span class="line"><span class="keyword">var</span> rtn = nums.some(<span class="function"><span class="keyword">function</span>(<span class="params">num</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">return</span> num%<span class="number">2</span>==<span class="number">0</span>;</span><br><span class="line">&#125;);</span><br><span class="line"><span class="built_in">console</span>.log(rtn); <span class="comment">// true</span></span><br></pre></td></tr></table></figure></p>
-<p>reduce() 方法接受一个函数, 返回一个值。 该方法会从一个累加值开始, 不断对累加值和<br>数组中的后续元素调用该函数, 直到数组中的最后一个元素, 最后返回得到的累加值。<br>计算数组中元素的平方和.<br><figure class="highlight stata"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> nums = [1,2,3,4];</span><br><span class="line"><span class="keyword">var</span> <span class="keyword">sum</span> = nums.reduce(function(<span class="keyword">sum</span>,num)&#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="keyword">sum</span> + num*num;</span><br><span class="line">&#125;);</span><br><span class="line">console.<span class="literal">log</span>(<span class="keyword">sum</span>);<span class="comment">//30  1*1 + 2*2 + 3*3 + 4*4 =30</span></span><br></pre></td></tr></table></figure></p>
+<p>reduce() 方法接受一个函数, 返回一个值。 该方法会从一个累加值开始, 不断对累加值和<br>数组中的后续元素调用该函数, 直到数组中的最后一个元素, 最后返回得到的累加值。<br>计算数组中元素的平方和.<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> nums = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>];</span><br><span class="line"><span class="keyword">var</span> sum = nums.reduce(<span class="function"><span class="keyword">function</span>(<span class="params">sum,num</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">return</span> sum + num*num;</span><br><span class="line">&#125;);</span><br><span class="line"><span class="built_in">console</span>.log(sum);<span class="comment">//30  1*1 + 2*2 + 3*3 + 4*4 =30</span></span><br></pre></td></tr></table></figure></p>
 <p>reduceRight() 方法, 和 reduce() 方法不同, 它是从右到左执行。<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">concat</span>(<span class="params">accumulatedString, item</span>) </span>&#123;</span><br><span class="line">    <span class="keyword">return</span> accumulatedString + item;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">var</span> words = [<span class="string">" the "</span> , <span class="string">" quick "</span> , <span class="string">" brown "</span> , <span class="string">" fox "</span> ] ;</span><br><span class="line"><span class="keyword">var</span> sentence = words. reduceRight(concat);</span><br><span class="line"><span class="built_in">console</span>.log(sentence); <span class="comment">// 显示 " fox brown quick the"</span></span><br></pre></td></tr></table></figure></p>
 <p>map() 和 forEach() 有点儿像, 对数组中的每个元素使用某个函数。 两者的区别是 map() 返回一个新的数组, 该数组的元素是对原有元素应用某个函数得到的结果。<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">square</span>(<span class="params">num</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">return</span> num* num;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> nums = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>];</span><br><span class="line"><span class="keyword">var</span> news = nums.map(square); <span class="comment">//rtn = [ 1, 4, 9, 16, 25 ]</span></span><br><span class="line"><span class="built_in">console</span>.log(nums);<span class="comment">//[ 1, 2, 3, 4, 5 ]</span></span><br><span class="line"><span class="built_in">console</span>.log(news);<span class="comment">//[ 1, 4, 9, 16, 25 ]</span></span><br></pre></td></tr></table></figure></p>
 <p>给定一个字符串生成首字母缩写形式<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> str = <span class="string">'Asynchronous Javascript And XML'</span>;</span><br><span class="line"><span class="keyword">var</span> arr = str.split(<span class="string">" "</span>);</span><br><span class="line"><span class="keyword">var</span> newArr = arr.map(<span class="function"><span class="keyword">function</span>(<span class="params">word</span>)</span>&#123;<span class="keyword">return</span> word.charAt(<span class="number">0</span>);&#125;);</span><br><span class="line"><span class="keyword">var</span> newStr = newArr.join(<span class="string">""</span>);</span><br><span class="line"><span class="built_in">console</span>.log(str + <span class="string">'-&gt;'</span> + newStr); <span class="comment">// Asynchronous Javascript And XML-&gt;AJAX</span></span><br></pre></td></tr></table></figure></p>
 <p>filter() 和 every() 类似, 传入一个返回值为布尔类型的函数。 和 every() 方法不同的是,当对数组中的所有元素应用该函数, 结果均为 true 时, 该方法并不返回 true, 而是返回一个新数组, 该数组包含应用该函数后结果为 true 的元素。<br>随机生成20个数字,取出大于60的数字.<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> nums = [];</span><br><span class="line"><span class="keyword">for</span>(<span class="keyword">var</span> i=<span class="number">0</span>;i&lt;<span class="number">20</span>;i++)&#123;</span><br><span class="line">    nums[i] = <span class="built_in">Math</span>.floor(<span class="built_in">Math</span>.random()*<span class="number">101</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">var</span> bigNums = nums.filter(<span class="function"><span class="keyword">function</span>(<span class="params">num</span>)</span>&#123;<span class="keyword">return</span> num &gt;= <span class="number">60</span>;&#125;);</span><br><span class="line"><span class="built_in">console</span>.log(nums);<span class="comment">//[ 46, 56, 53, 65, 49, 3, 25, 26, 46, 25, 36, 73, 44, 43, 58, 97, 100, 65, 97, 47 ]</span></span><br><span class="line"><span class="built_in">console</span>.log(bigNums);<span class="comment">//[ 65, 73, 97, 100, 65, 97 ]</span></span><br></pre></td></tr></table></figure></p>
-<figure class="highlight coffeescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="reserved">var</span> words = [<span class="string">"recieve"</span> , <span class="string">" deceive"</span> , <span class="string">"percieve"</span> , <span class="string">"deceit"</span> , <span class="string">"concieve"</span> ] ;</span><br><span class="line"><span class="reserved">var</span> filter = <span class="string">'cie'</span>;</span><br><span class="line"><span class="reserved">var</span> misspelled = words.filter(<span class="reserved">function</span>(word)&#123;</span><br><span class="line">    <span class="keyword">if</span>(word.indexOf(filter)&gt;-<span class="number">1</span>)&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="literal">true</span>;</span><br><span class="line">    &#125;<span class="keyword">else</span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="literal">false</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;);</span><br><span class="line"><span class="built_in">console</span>.log(misspelled );<span class="regexp">//</span>[ <span class="string">'recieve'</span>, <span class="string">'percieve'</span>, <span class="string">'concieve'</span> ]</span><br></pre></td></tr></table></figure>
+<figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> words = [<span class="string">"recieve"</span> , <span class="string">" deceive"</span> , <span class="string">"percieve"</span> , <span class="string">"deceit"</span> , <span class="string">"concieve"</span> ] ;</span><br><span class="line"><span class="keyword">var</span> filter = <span class="string">'cie'</span>;</span><br><span class="line"><span class="keyword">var</span> misspelled = words.filter(<span class="function"><span class="keyword">function</span>(<span class="params">word</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">if</span>(word.indexOf(filter)&gt;-<span class="number">1</span>)&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="literal">true</span>;</span><br><span class="line">    &#125;<span class="keyword">else</span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="literal">false</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;);</span><br><span class="line"><span class="built_in">console</span>.log(misspelled );<span class="comment">//[ 'recieve', 'percieve', 'concieve' ]</span></span><br></pre></td></tr></table></figure>
       
     </div>
 
@@ -265,14 +265,12 @@
         <div class="post-nav">
           <div class="post-nav-prev post-nav-item">
             
-              <a href="/2015/06/06/coredump-01/">使用gdb解析core dump-概念篇</a>
+              <a href="/2015/05/29/javascript-note-02/">JavaScript学习笔记-数组2</a>
             
           </div>
 
           <div class="post-nav-next post-nav-item">
             
-              <a href="/2015/05/29/javascript-note-03/">JavaScript学习笔记-数组练习题</a>
-            
           </div>
         </div>
       
@@ -381,6 +379,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/2015/05/29/javascript-note-02/index.html b/2015/05/29/javascript-note-02/index.html
index 5564781..cb76b06 100644
--- a/2015/05/29/javascript-note-02/index.html
+++ b/2015/05/29/javascript-note-02/index.html
@@ -218,9 +218,9 @@
 
       
         <h3 id="二维数组">二维数组</h3><p>JavaScript只支持一维数组,但是通过在数组里保存数组元素的方式,可以轻松创建多维<br>数组。</p>
-<h3 id="创建二维数组">创建二维数组</h3><figure class="highlight inform7"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">var twod = <span class="comment">[]</span>;</span><br><span class="line">var rows = 5;</span><br><span class="line">for (var i = 0; i &lt; rows; ++i) &#123;</span><br><span class="line">    twod<span class="comment">[i]</span> = <span class="comment">[]</span>;</span><br><span class="line">&#125;</span><br><span class="line">console.log(twod);//<span class="comment">[ <span class="comment">[]</span>, <span class="comment">[]</span>, <span class="comment">[]</span>, <span class="comment">[]</span>, <span class="comment">[]</span> ]</span></span><br></pre></td></tr></table></figure>
+<h3 id="创建二维数组">创建二维数组</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> twod = [];</span><br><span class="line"><span class="keyword">var</span> rows = <span class="number">5</span>;</span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">var</span> i = <span class="number">0</span>; i &lt; rows; ++i) &#123;</span><br><span class="line">    twod[i] = [];</span><br><span class="line">&#125;</span><br><span class="line"><span class="built_in">console</span>.log(twod);<span class="comment">//[ [], [], [], [], [] ]</span></span><br></pre></td></tr></table></figure>
 <a id="more"></a>
-<p>为数组类添加方法matrix(行数,列数,初始值),用于创建二维数组并初始化.<br><figure class="highlight cal"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">Array.matrix = function(rows,cols,initial)&#123;</span><br><span class="line">    <span class="keyword">var</span> arr = [];</span><br><span class="line">    <span class="keyword">for</span>(<span class="keyword">var</span> i = <span class="number">0</span>; i &lt; rows; i++)&#123;</span><br><span class="line">        <span class="keyword">var</span> col = [];</span><br><span class="line">        <span class="keyword">for</span>(<span class="keyword">var</span> j = <span class="number">0</span>; j &lt; cols; j++)&#123;</span><br><span class="line">            col[j] = initial;</span><br><span class="line">        &#125;</span><br><span class="line">        arr[i] = col;</span><br><span class="line">    &#125;</span><br><span class="line">    return arr;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> nums = Array.matrix(<span class="number">5</span>,<span class="number">5</span>,<span class="number">0</span>);</span><br><span class="line">console.log(nums[<span class="number">1</span>][<span class="number">1</span>]); // <span class="number">0</span></span><br><span class="line"><span class="keyword">var</span> strs = Array.matrix(<span class="number">5</span>,<span class="number">5</span>,<span class="variable">""</span>);</span><br><span class="line">strs[<span class="number">1</span>][<span class="number">2</span>] = <span class="variable">"iDarker"</span>;</span><br><span class="line">console.log(strs);</span><br><span class="line"> /* [ [ <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span> ],</span><br><span class="line">  [ <span class="string">''</span>, <span class="string">''</span>, <span class="string">'iDarker'</span>, <span class="string">''</span>, <span class="string">''</span></span><br><span class="line">  [ <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span> ],</span><br><span class="line">  [ <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span> ],</span><br><span class="line">  [ <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span>, <span class="string">''</span> ] ]</span><br><span class="line">*/</span><br></pre></td></tr></table></figure></p>
+<p>为数组类添加方法matrix(行数,列数,初始值),用于创建二维数组并初始化.<br><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Array</span>.matrix = <span class="function"><span class="keyword">function</span>(<span class="params">rows,cols,initial</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">var</span> arr = [];</span><br><span class="line">    <span class="keyword">for</span>(<span class="keyword">var</span> i = <span class="number">0</span>; i &lt; rows; i++)&#123;</span><br><span class="line">        <span class="keyword">var</span> col = [];</span><br><span class="line">        <span class="keyword">for</span>(<span class="keyword">var</span> j = <span class="number">0</span>; j &lt; cols; j++)&#123;</span><br><span class="line">            col[j] = initial;</span><br><span class="line">        &#125;</span><br><span class="line">        arr[i] = col;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> arr;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> nums = <span class="built_in">Array</span>.matrix(<span class="number">5</span>,<span class="number">5</span>,<span class="number">0</span>);</span><br><span class="line"><span class="built_in">console</span>.log(nums[<span class="number">1</span>][<span class="number">1</span>]); <span class="comment">// 0</span></span><br><span class="line"><span class="keyword">var</span> strs = <span class="built_in">Array</span>.matrix(<span class="number">5</span>,<span class="number">5</span>,<span class="string">""</span>);</span><br><span class="line">strs[<span class="number">1</span>][<span class="number">2</span>] = <span class="string">"iDarker"</span>;</span><br><span class="line"><span class="built_in">console</span>.log(strs);</span><br><span class="line"> <span class="comment">/* [ [ '', '', '', '', '' ],</span><br><span class="line">  [ '', '', 'iDarker', '', ''</span><br><span class="line">  [ '', '', '', '', '' ],</span><br><span class="line">  [ '', '', '', '', '' ],</span><br><span class="line">  [ '', '', '', '', '' ] ]</span><br><span class="line">*/</span></span><br></pre></td></tr></table></figure></p>
 <h3 id="对象数组">对象数组</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">Point</span>(<span class="params">x,y</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">this</span>.x = x;</span><br><span class="line">    <span class="keyword">this</span>.y = y;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">var</span> p1 = <span class="keyword">new</span> Point(<span class="number">1</span>,<span class="number">1</span>);</span><br><span class="line"><span class="keyword">var</span> p2 = <span class="keyword">new</span> Point(<span class="number">2</span>,<span class="number">2</span>);</span><br><span class="line"><span class="keyword">var</span> p3 = <span class="keyword">new</span> Point(<span class="number">3</span>,<span class="number">3</span>);</span><br><span class="line"><span class="keyword">var</span> p4 = <span class="keyword">new</span> Point(<span class="number">4</span>,<span class="number">4</span>);</span><br><span class="line"><span class="keyword">var</span> points = [p1,p2,p3,p4];</span><br><span class="line">points.forEach(<span class="function"><span class="keyword">function</span>(<span class="params">point</span>)</span>&#123;</span><br><span class="line">    <span class="built_in">console</span>.log(<span class="string">'Point  x:'</span> + point.x + <span class="string">'  y:'</span> + point.y);</span><br><span class="line">&#125;);</span><br><span class="line"><span class="comment">/*</span><br><span class="line">Point  x:1  y:1</span><br><span class="line">Point  x:2  y:2</span><br><span class="line">Point  x:3  y:3</span><br><span class="line">Point  x:4  y:4</span><br><span class="line">*/</span></span><br><span class="line"><span class="keyword">var</span> p5 = <span class="keyword">new</span> Point(<span class="number">5</span>,<span class="number">5</span>);</span><br><span class="line">points.push(p5);</span><br><span class="line"><span class="built_in">console</span>.log(points);</span><br><span class="line"><span class="comment">/*</span><br><span class="line">[ &#123; x: 1, y: 1 &#125;,</span><br><span class="line">  &#123; x: 2, y: 2 &#125;,</span><br><span class="line">  &#123; x: 3, y: 3 &#125;,</span><br><span class="line">  &#123; x: 4, y: 4 &#125;,</span><br><span class="line">  &#123; x: 5, y: 5 &#125; ]</span><br><span class="line">*/</span></span><br><span class="line">points.pop();</span><br><span class="line"><span class="built_in">console</span>.log(points);</span><br><span class="line"><span class="comment">/*</span><br><span class="line">[ &#123; x: 1, y: 1 &#125;,</span><br><span class="line">  &#123; x: 2, y: 2 &#125;,</span><br><span class="line">  &#123; x: 3, y: 3 &#125;,</span><br><span class="line">  &#123; x: 4, y: 4 &#125; ]</span><br><span class="line">*/</span></span><br><span class="line">points.unshift(p5);</span><br><span class="line"><span class="built_in">console</span>.log(points);</span><br><span class="line"><span class="comment">/*</span><br><span class="line">[ &#123; x: 5, y: 5 &#125;,</span><br><span class="line">  &#123; x: 1, y: 1 &#125;,</span><br><span class="line">  &#123; x: 2, y: 2 &#125;,</span><br><span class="line">  &#123; x: 3, y: 3 &#125;,</span><br><span class="line">  &#123; x: 4, y: 4 &#125; ]</span><br><span class="line">*/</span></span><br><span class="line">points.shift();</span><br><span class="line"><span class="built_in">console</span>.log(points);</span><br><span class="line"><span class="comment">/*</span><br><span class="line">[ &#123; x: 1, y: 1 &#125;,</span><br><span class="line">  &#123; x: 2, y: 2 &#125;,</span><br><span class="line">  &#123; x: 3, y: 3 &#125;,</span><br><span class="line">  &#123; x: 4, y: 4 &#125; ]</span><br><span class="line">*/</span></span><br><span class="line"><span class="keyword">var</span> filter = <span class="keyword">new</span> Point(<span class="number">2</span>,<span class="number">2</span>);</span><br><span class="line"><span class="keyword">var</span> newPoints = points.filter(<span class="function"><span class="keyword">function</span>(<span class="params">point</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">return</span> (point.x == filter.x) &amp;&amp; (point.y == filter.y);</span><br><span class="line">&#125;);</span><br><span class="line"><span class="built_in">console</span>.log(newPoints );</span><br><span class="line"><span class="comment">/* [ &#123; x: 2, y: 2 &#125; ] */</span></span><br></pre></td></tr></table></figure>
       
     </div>
@@ -244,7 +244,7 @@
 
           <div class="post-nav-next post-nav-item">
             
-              <a href="/2015/05/29/javascript-note-04/">JavaScript学习笔记-列表</a>
+              <a href="/2015/05/29/javascript-note-01/">JavaScript学习笔记-数组</a>
             
           </div>
         </div>
@@ -354,6 +354,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/2015/05/29/javascript-note-03/index.html b/2015/05/29/javascript-note-03/index.html
index 7345eee..b94eade 100644
--- a/2015/05/29/javascript-note-03/index.html
+++ b/2015/05/29/javascript-note-03/index.html
@@ -219,7 +219,7 @@
       
         <h4 id="1-_创建一个记录学生成绩的对象,提供一个添加成绩的方法,以及一个显示学生平均成绩的方法。">1.  创建一个记录学生成绩的对象,提供一个添加成绩的方法,以及一个显示学生平均成绩的方法。</h4><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">Grade</span>(<span class="params">chinese,english,math</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.dataStore = [chinese,english,math]</span><br><span class="line">  <span class="keyword">this</span>.average = <span class="function"><span class="keyword">function</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">    <span class="keyword">var</span> total = <span class="keyword">this</span>.dataStore.reduce(<span class="function"><span class="keyword">function</span>(<span class="params">currenTotal,currenNum</span>)</span>&#123;</span><br><span class="line">      <span class="keyword">return</span> currenTotal + currenNum;</span><br><span class="line">    &#125;);</span><br><span class="line">    <span class="keyword">return</span> total/<span class="keyword">this</span>.dataStore.length;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">Grades</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.dataStore = [];</span><br><span class="line">  <span class="keyword">this</span>.add = <span class="function"><span class="keyword">function</span>(<span class="params">grade</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">this</span>.dataStore.push(grade);</span><br><span class="line">  &#125;;</span><br><span class="line">  <span class="keyword">this</span>.average = <span class="function"><span class="keyword">function</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">    <span class="keyword">var</span> averages = <span class="keyword">this</span>.dataStore.map(<span class="function"><span class="keyword">function</span>(<span class="params">grade</span>)</span>&#123;</span><br><span class="line">      <span class="keyword">return</span> grade.average();</span><br><span class="line">    &#125;);</span><br><span class="line">    <span class="built_in">console</span>.log(averages);</span><br><span class="line">    <span class="keyword">var</span> total = averages.reduce(<span class="function"><span class="keyword">function</span>(<span class="params">currenTotal,currenNum</span>)</span>&#123;</span><br><span class="line">      <span class="keyword">return</span> currenTotal + currenNum;</span><br><span class="line">    &#125;);</span><br><span class="line">    <span class="keyword">return</span> total/<span class="keyword">this</span>.dataStore.length;</span><br><span class="line">  &#125;;</span><br><span class="line">  </span><br><span class="line">  <span class="keyword">this</span>.englishAverage = <span class="function"><span class="keyword">function</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">    <span class="keyword">var</span> englishs = <span class="keyword">this</span>.dataStore.map(<span class="function"><span class="keyword">function</span>(<span class="params">grade</span>)</span>&#123;</span><br><span class="line">      <span class="keyword">return</span> grade.dataStore[<span class="number">0</span>];</span><br><span class="line">    &#125;);</span><br><span class="line">    <span class="built_in">console</span>.log(englishs);</span><br><span class="line">    <span class="keyword">var</span> total = englishs.reduce(<span class="function"><span class="keyword">function</span>(<span class="params">currenTotal,currenNum</span>)</span>&#123;</span><br><span class="line">      <span class="keyword">return</span> currenTotal + currenNum;</span><br><span class="line">    &#125;);</span><br><span class="line">    <span class="keyword">return</span> total/<span class="keyword">this</span>.dataStore.length;</span><br><span class="line">  &#125;;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> g1 = <span class="keyword">new</span> Grade(<span class="number">90</span>,<span class="number">98</span>,<span class="number">95</span>);</span><br><span class="line"><span class="keyword">var</span> g2 = <span class="keyword">new</span> Grade(<span class="number">83</span>,<span class="number">79</span>,<span class="number">82</span>);</span><br><span class="line"><span class="keyword">var</span> g3 = <span class="keyword">new</span> Grade(<span class="number">46</span>,<span class="number">53</span>,<span class="number">22</span>);</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> grades = <span class="keyword">new</span> Grades();</span><br><span class="line">grades.add(g1);</span><br><span class="line">grades.add(g2);</span><br><span class="line">grades.add(g3);</span><br><span class="line"></span><br><span class="line"><span class="built_in">console</span>.log(grades.average());</span><br><span class="line"><span class="built_in">console</span>.log(grades.englishAverage());</span><br></pre></td></tr></table></figure>
 <a id="more"></a>
-<h4 id="2-_将一组单词存储在一个数组中,并按正序和倒序分别显示这些单词。">2.  将一组单词存储在一个数组中,并按正序和倒序分别显示这些单词。</h4><figure class="highlight applescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">var <span class="property">words</span> = ['one','two','three','four'];</span><br><span class="line"><span class="property">words</span>.sort();</span><br><span class="line">console.<span class="command">log</span>(<span class="property">words</span>);</span><br><span class="line"><span class="property">words</span>.<span class="property">reverse</span>();</span><br><span class="line">console.<span class="command">log</span>(<span class="property">words</span>);</span><br></pre></td></tr></table></figure>
+<h4 id="2-_将一组单词存储在一个数组中,并按正序和倒序分别显示这些单词。">2.  将一组单词存储在一个数组中,并按正序和倒序分别显示这些单词。</h4><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> words = [<span class="string">'one'</span>,<span class="string">'two'</span>,<span class="string">'three'</span>,<span class="string">'four'</span>];</span><br><span class="line">words.sort();</span><br><span class="line"><span class="built_in">console</span>.log(words);</span><br><span class="line">words.reverse();</span><br><span class="line"><span class="built_in">console</span>.log(words);</span><br></pre></td></tr></table></figure>
 <h4 id="3-_创建这样一个对象,它将字母存储在一个数组中,并且用一个方法可以将字母连在一起,显示成一个单词。">3.  创建这样一个对象,它将字母存储在一个数组中,并且用一个方法可以将字母连在一起,显示成一个单词。</h4><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">Word</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.dataStore = [];</span><br><span class="line">  <span class="keyword">this</span>.add = <span class="function"><span class="keyword">function</span>(<span class="params">char</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">this</span>.dataStore.push(char);</span><br><span class="line">  &#125;;</span><br><span class="line">  <span class="keyword">this</span>.toString = <span class="function"><span class="keyword">function</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="keyword">this</span>.dataStore.join(<span class="string">""</span>);</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> word = <span class="keyword">new</span> Word();</span><br><span class="line">word.add(<span class="string">'g'</span>);</span><br><span class="line">word.add(<span class="string">'o'</span>);</span><br><span class="line">word.add(<span class="string">'o'</span>);</span><br><span class="line">word.add(<span class="string">'d'</span>);</span><br><span class="line"><span class="built_in">console</span>.log(word.toString());</span><br></pre></td></tr></table></figure>
       
     </div>
@@ -237,7 +237,7 @@
         <div class="post-nav">
           <div class="post-nav-prev post-nav-item">
             
-              <a href="/2015/05/29/javascript-note-01/">JavaScript学习笔记-数组</a>
+              <a href="/2015/05/29/javascript-note-04/">JavaScript学习笔记-列表</a>
             
           </div>
 
@@ -353,6 +353,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/2015/05/29/javascript-note-04/index.html b/2015/05/29/javascript-note-04/index.html
index 70cc9d9..1d5eee6 100644
--- a/2015/05/29/javascript-note-04/index.html
+++ b/2015/05/29/javascript-note-04/index.html
@@ -234,13 +234,13 @@
         <div class="post-nav">
           <div class="post-nav-prev post-nav-item">
             
-              <a href="/2015/05/29/javascript-note-02/">JavaScript学习笔记-数组2</a>
+              <a href="/2015/05/29/javascript-note-05/">JavaScript学习笔记-栈</a>
             
           </div>
 
           <div class="post-nav-next post-nav-item">
             
-              <a href="/2015/05/29/javascript-note-05/">JavaScript学习笔记-栈</a>
+              <a href="/2015/05/29/javascript-note-03/">JavaScript学习笔记-数组练习题</a>
             
           </div>
         </div>
@@ -350,6 +350,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/2015/05/29/javascript-note-05/index.html b/2015/05/29/javascript-note-05/index.html
index 5147127..955b83d 100644
--- a/2015/05/29/javascript-note-05/index.html
+++ b/2015/05/29/javascript-note-05/index.html
@@ -228,17 +228,17 @@
 <li>属性:栈内是否有元素boolean:empty  //可以使用top=0进行判断,</li>
 </ul>
 <a id="more"></a>
-<figure class="highlight actionscript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">Stack</span><span class="params">()</span></span>&#123;</span><br><span class="line">    <span class="keyword">this</span>.dataStore = [];</span><br><span class="line">    <span class="keyword">this</span>.top = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">this</span>.push = <span class="function"><span class="keyword">function</span><span class="params">(element)</span></span>&#123;</span><br><span class="line">        <span class="keyword">this</span>.dataStore[<span class="keyword">this</span>.top++] = element;</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="keyword">this</span>.pop = <span class="function"><span class="keyword">function</span><span class="params">()</span></span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="keyword">this</span>.dataStore[--<span class="keyword">this</span>.top];</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="keyword">this</span>.peek = <span class="function"><span class="keyword">function</span><span class="params">()</span></span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="keyword">this</span>.dataStore[<span class="keyword">this</span>.top - <span class="number">1</span>];</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="keyword">this</span>.length = <span class="function"><span class="keyword">function</span><span class="params">()</span></span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="keyword">this</span>.top;</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="keyword">this</span>.clear = <span class="function"><span class="keyword">function</span><span class="params">()</span></span>&#123;</span><br><span class="line">        <span class="keyword">this</span>.top = <span class="number">0</span>;</span><br><span class="line">    &#125;;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
-<h3 id="使用栈">使用栈</h3><figure class="highlight openscad"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">var  s = new Stack<span class="params">()</span>;</span><br><span class="line">s.push<span class="params">('iDarker')</span>;</span><br><span class="line">s.push<span class="params">('xiachuan')</span>;</span><br><span class="line">s.push<span class="params">('qianxia')</span>;</span><br><span class="line">console.<span class="built_in">log</span><span class="params">('length:' + s.length<span class="params">()</span>)</span>;    <span class="comment">//length:3</span></span><br><span class="line">console.<span class="built_in">log</span><span class="params">('peek:' + s.peek<span class="params">()</span>)</span>;           <span class="comment">//peek: qianxia</span></span><br><span class="line">var poped = s.pop<span class="params">()</span>;</span><br><span class="line">console.<span class="built_in">log</span><span class="params">('poped :' + poped)</span>;    <span class="comment">//poped : qianxia</span></span><br><span class="line">console.<span class="built_in">log</span><span class="params">('peek:' + s.peek<span class="params">()</span>)</span>;      <span class="comment">//peek: xiachuan</span></span><br><span class="line">s.push<span class="params">('love')</span>;</span><br><span class="line">console.<span class="built_in">log</span><span class="params">('peek:' + s.peek<span class="params">()</span>)</span>;     <span class="comment">//peek: love</span></span><br><span class="line">s.clear<span class="params">()</span>;</span><br><span class="line">console.<span class="built_in">log</span><span class="params">('length:' + s.length<span class="params">()</span>)</span>; <span class="comment">//length:0</span></span><br><span class="line">console.<span class="built_in">log</span><span class="params">('peek:' + s.peek<span class="params">()</span>)</span>;      <span class="comment">//peek:undefined</span></span><br></pre></td></tr></table></figure>
+<figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">Stack</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">    <span class="keyword">this</span>.dataStore = [];</span><br><span class="line">    <span class="keyword">this</span>.top = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">this</span>.push = <span class="function"><span class="keyword">function</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">        <span class="keyword">this</span>.dataStore[<span class="keyword">this</span>.top++] = element;</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="keyword">this</span>.pop = <span class="function"><span class="keyword">function</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="keyword">this</span>.dataStore[--<span class="keyword">this</span>.top];</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="keyword">this</span>.peek = <span class="function"><span class="keyword">function</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="keyword">this</span>.dataStore[<span class="keyword">this</span>.top - <span class="number">1</span>];</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="keyword">this</span>.length = <span class="function"><span class="keyword">function</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="keyword">this</span>.top;</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="keyword">this</span>.clear = <span class="function"><span class="keyword">function</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">        <span class="keyword">this</span>.top = <span class="number">0</span>;</span><br><span class="line">    &#125;;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+<h3 id="使用栈">使用栈</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span>  s = <span class="keyword">new</span> Stack();</span><br><span class="line">s.push(<span class="string">'iDarker'</span>);</span><br><span class="line">s.push(<span class="string">'xiachuan'</span>);</span><br><span class="line">s.push(<span class="string">'qianxia'</span>);</span><br><span class="line"><span class="built_in">console</span>.log(<span class="string">'length:'</span> + s.length());    <span class="comment">//length:3</span></span><br><span class="line"><span class="built_in">console</span>.log(<span class="string">'peek:'</span> + s.peek());           <span class="comment">//peek: qianxia</span></span><br><span class="line"><span class="keyword">var</span> poped = s.pop();</span><br><span class="line"><span class="built_in">console</span>.log(<span class="string">'poped :'</span> + poped);    <span class="comment">//poped : qianxia</span></span><br><span class="line"><span class="built_in">console</span>.log(<span class="string">'peek:'</span> + s.peek());      <span class="comment">//peek: xiachuan</span></span><br><span class="line">s.push(<span class="string">'love'</span>);</span><br><span class="line"><span class="built_in">console</span>.log(<span class="string">'peek:'</span> + s.peek());     <span class="comment">//peek: love</span></span><br><span class="line">s.clear();</span><br><span class="line"><span class="built_in">console</span>.log(<span class="string">'length:'</span> + s.length()); <span class="comment">//length:0</span></span><br><span class="line"><span class="built_in">console</span>.log(<span class="string">'peek:'</span> + s.peek());      <span class="comment">//peek:undefined</span></span><br></pre></td></tr></table></figure>
 <h3 id="栈能解决什么问题">栈能解决什么问题</h3><p><strong>使用栈进行进制转换</strong></p>
 <ul>
 <li>十六进制转为十进制  (这个问题不应该用栈解决,数组本身比这更好,想岔了 (ˇˍˇ))</li>
 </ul>
-<figure class="highlight stata"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">function Hex2Dec(hex)&#123;</span><br><span class="line">    <span class="keyword">var</span> chars = hex.toUpperCase().<span class="keyword">split</span>('').<span class="literal">reverse</span>(); <span class="comment">//统一转换为大写--&gt;分割成字符数组--&gt;倒序排列</span></span><br><span class="line">    <span class="keyword">var</span> <span class="keyword">stack</span> = new <span class="keyword">Stack</span>();</span><br><span class="line">    chars.<span class="keyword">forEach</span>(function(<span class="keyword">char</span>)&#123;</span><br><span class="line">        <span class="keyword">var</span> code = <span class="keyword">char</span>.charCodeAt(); <span class="comment">//获取字符串第一个元素的ascii码(实际上是Unicode码)</span></span><br><span class="line">        <span class="keyword">var</span> num = 0;</span><br><span class="line">        <span class="keyword">if</span>(code &gt; 64)&#123;                     <span class="comment">//判断是否大于'A'=65</span></span><br><span class="line">            num = code - 55;           <span class="comment">//'A'-&gt;10  'B'-&gt;11</span></span><br><span class="line">            <span class="keyword">stack</span>.push(num);</span><br><span class="line">        &#125;<span class="keyword">else</span>&#123;</span><br><span class="line">            num = code - 48;           <span class="comment">//char('0')=ascii(48)</span></span><br><span class="line">            <span class="keyword">stack</span>.push(num);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;);</span><br><span class="line">    <span class="keyword">var</span> converted = 0;</span><br><span class="line">    <span class="keyword">while</span>(<span class="keyword">stack</span>.<span class="literal">length</span>()&gt;0)&#123;</span><br><span class="line">        converted = converted*16  +  <span class="keyword">stack</span>.pop();</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> converted;</span><br><span class="line">&#125;</span><br><span class="line">console.<span class="literal">log</span>(Hex2Dec('123'));   <span class="comment">// 291</span></span><br><span class="line">console.<span class="literal">log</span>(Hex2Dec('ABC')); <span class="comment">//2748</span></span><br><span class="line">console.<span class="literal">log</span>(Hex2Dec('121ABCcd')); <span class="comment">// 303742157</span></span><br></pre></td></tr></table></figure>
+<figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">Hex2Dec</span>(<span class="params">hex</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">var</span> chars = hex.toUpperCase().split(<span class="string">''</span>).reverse(); <span class="comment">//统一转换为大写--&gt;分割成字符数组--&gt;倒序排列</span></span><br><span class="line">    <span class="keyword">var</span> stack = <span class="keyword">new</span> Stack();</span><br><span class="line">    chars.forEach(<span class="function"><span class="keyword">function</span>(<span class="params">char</span>)</span>&#123;</span><br><span class="line">        <span class="keyword">var</span> code = char.charCodeAt(); <span class="comment">//获取字符串第一个元素的ascii码(实际上是Unicode码)</span></span><br><span class="line">        <span class="keyword">var</span> num = <span class="number">0</span>;</span><br><span class="line">        <span class="keyword">if</span>(code &gt; <span class="number">64</span>)&#123;                     <span class="comment">//判断是否大于'A'=65</span></span><br><span class="line">            num = code - <span class="number">55</span>;           <span class="comment">//'A'-&gt;10  'B'-&gt;11</span></span><br><span class="line">            stack.push(num);</span><br><span class="line">        &#125;<span class="keyword">else</span>&#123;</span><br><span class="line">            num = code - <span class="number">48</span>;           <span class="comment">//char('0')=ascii(48)</span></span><br><span class="line">            stack.push(num);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;);</span><br><span class="line">    <span class="keyword">var</span> converted = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">while</span>(stack.length()&gt;<span class="number">0</span>)&#123;</span><br><span class="line">        converted = converted*<span class="number">16</span>  +  stack.pop();</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> converted;</span><br><span class="line">&#125;</span><br><span class="line"><span class="built_in">console</span>.log(Hex2Dec(<span class="string">'123'</span>));   <span class="comment">// 291</span></span><br><span class="line"><span class="built_in">console</span>.log(Hex2Dec(<span class="string">'ABC'</span>)); <span class="comment">//2748</span></span><br><span class="line"><span class="built_in">console</span>.log(Hex2Dec(<span class="string">'121ABCcd'</span>)); <span class="comment">// 303742157</span></span><br></pre></td></tr></table></figure>
 <ul>
 <li>十进制转为十六进制/二进制/8进制</li>
 </ul>
-<figure class="highlight openscad"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">convert</span><span class="params">(num,base)</span>&#123;</span></span><br><span class="line">    var s = new Stack<span class="params">()</span>;</span><br><span class="line">    do&#123;</span><br><span class="line">        s.push<span class="params">(num % base)</span>;</span><br><span class="line">        num = Math.<span class="built_in">floor</span><span class="params">(num / base)</span>;</span><br><span class="line">    &#125;while<span class="params">(num &gt; <span class="number">0</span>)</span>;</span><br><span class="line">    </span><br><span class="line">    var converted =<span class="string">""</span>;</span><br><span class="line">    while<span class="params">(s.length<span class="params">()</span> &gt; <span class="number">0</span>)</span>&#123;</span><br><span class="line">        var poped = s.pop<span class="params">()</span>;</span><br><span class="line">        <span class="keyword">if</span><span class="params">(poped &gt; <span class="number">9</span>)</span>&#123;</span><br><span class="line">             converted += String.fromCharCode<span class="params">(poped+<span class="number">55</span>)</span>;</span><br><span class="line">        &#125;<span class="keyword">else</span>&#123;</span><br><span class="line">            converted += poped;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    return converted;</span><br><span class="line">&#125;</span><br><span class="line">console.<span class="built_in">log</span><span class="params">(convert<span class="params">(<span class="number">303742157</span>,<span class="number">16</span>)</span>)</span>; <span class="comment">//121ABCCD</span></span><br><span class="line">console.<span class="built_in">log</span><span class="params">(convert<span class="params">(<span class="number">100</span>,<span class="number">16</span>)</span>)</span>; <span class="comment">//64</span></span><br><span class="line">console.<span class="built_in">log</span><span class="params">(convert<span class="params">(<span class="number">100</span>,<span class="number">10</span>)</span>)</span>;  <span class="comment">//100</span></span><br><span class="line">console.<span class="built_in">log</span><span class="params">(convert<span class="params">(<span class="number">100</span>,<span class="number">8</span>)</span>)</span>;   <span class="comment">//144</span></span><br><span class="line">console.<span class="built_in">log</span><span class="params">(convert<span class="params">(<span class="number">100</span>,<span class="number">2</span>)</span>)</span>;  <span class="comment">//1100100</span></span><br><span class="line">console.<span class="built_in">log</span><span class="params">(convert<span class="params">(<span class="number">303742157</span>,<span class="number">20</span>)</span>)</span>; <span class="comment">//4EI7F7H (ˇˍˇ) ~</span></span><br></pre></td></tr></table></figure>
+<figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">convert</span>(<span class="params">num,base</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">var</span> s = <span class="keyword">new</span> Stack();</span><br><span class="line">    <span class="keyword">do</span>&#123;</span><br><span class="line">        s.push(num % base);</span><br><span class="line">        num = <span class="built_in">Math</span>.floor(num / base);</span><br><span class="line">    &#125;<span class="keyword">while</span>(num &gt; <span class="number">0</span>);</span><br><span class="line">    </span><br><span class="line">    <span class="keyword">var</span> converted =<span class="string">""</span>;</span><br><span class="line">    <span class="keyword">while</span>(s.length() &gt; <span class="number">0</span>)&#123;</span><br><span class="line">        <span class="keyword">var</span> poped = s.pop();</span><br><span class="line">        <span class="keyword">if</span>(poped &gt; <span class="number">9</span>)&#123;</span><br><span class="line">             converted += <span class="built_in">String</span>.fromCharCode(poped+<span class="number">55</span>);</span><br><span class="line">        &#125;<span class="keyword">else</span>&#123;</span><br><span class="line">            converted += poped;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> converted;</span><br><span class="line">&#125;</span><br><span class="line"><span class="built_in">console</span>.log(convert(<span class="number">303742157</span>,<span class="number">16</span>)); <span class="comment">//121ABCCD</span></span><br><span class="line"><span class="built_in">console</span>.log(convert(<span class="number">100</span>,<span class="number">16</span>)); <span class="comment">//64</span></span><br><span class="line"><span class="built_in">console</span>.log(convert(<span class="number">100</span>,<span class="number">10</span>));  <span class="comment">//100</span></span><br><span class="line"><span class="built_in">console</span>.log(convert(<span class="number">100</span>,<span class="number">8</span>));   <span class="comment">//144</span></span><br><span class="line"><span class="built_in">console</span>.log(convert(<span class="number">100</span>,<span class="number">2</span>));  <span class="comment">//1100100</span></span><br><span class="line"><span class="built_in">console</span>.log(convert(<span class="number">303742157</span>,<span class="number">20</span>)); <span class="comment">//4EI7F7H (ˇˍˇ) ~</span></span><br></pre></td></tr></table></figure>
 <ul>
 <li>数组的reverse函数</li>
 </ul>
@@ -246,11 +246,11 @@
 <ul>
 <li>判断字符串是否为回文<br>回文是指这样一种现象: 一个单词、 短语或数字, 从前往后写和从后往前写都是一样的。</li>
 </ul>
-<figure class="highlight openscad"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">isPalindrome</span><span class="params">(word)</span> &#123;</span></span><br><span class="line">    var s = new Stack<span class="params">()</span>;</span><br><span class="line">    <span class="keyword">for</span> <span class="params">(var i = <span class="number">0</span>; i &lt; word. length; ++i)</span> &#123;</span><br><span class="line">        s. push<span class="params">(word[i] )</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    var rword = <span class="string">""</span>;</span><br><span class="line">    while <span class="params">(s. length<span class="params">()</span> &gt; <span class="number">0</span>)</span> &#123;</span><br><span class="line">        rword += s. pop<span class="params">()</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> <span class="params">(word == rword)</span> &#123;</span><br><span class="line">        return <span class="literal">true</span>;</span><br><span class="line">    &#125;<span class="keyword">else</span> &#123;</span><br><span class="line">        return <span class="literal">false</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">var word = <span class="string">"hello"</span> ;</span><br><span class="line"><span class="keyword">if</span> <span class="params">(isPalindrome<span class="params">(word)</span>)</span> &#123;</span><br><span class="line">    console.<span class="built_in">log</span><span class="params">(word + <span class="string">" is a palindrome. "</span> )</span>;</span><br><span class="line">&#125;<span class="keyword">else</span> &#123;</span><br><span class="line">    console.<span class="built_in">log</span><span class="params">(word + <span class="string">" is not a palindrome. "</span> )</span>;</span><br><span class="line">&#125;</span><br><span class="line">word = <span class="string">"racecar"</span></span><br><span class="line"><span class="keyword">if</span> <span class="params">(isPalindrome<span class="params">(word)</span>)</span> &#123;</span><br><span class="line">    console.<span class="built_in">log</span><span class="params">(word + <span class="string">" is a palindrome. "</span> )</span>;</span><br><span class="line">&#125;<span class="keyword">else</span> &#123;</span><br><span class="line">    console.<span class="built_in">log</span><span class="params">(word + <span class="string">" is not a palindrome. "</span> )</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+<figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">isPalindrome</span>(<span class="params">word</span>) </span>&#123;</span><br><span class="line">    <span class="keyword">var</span> s = <span class="keyword">new</span> Stack();</span><br><span class="line">    <span class="keyword">for</span> (<span class="keyword">var</span> i = <span class="number">0</span>; i &lt; word. length; ++i) &#123;</span><br><span class="line">        s. push(word[i] );</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">var</span> rword = <span class="string">""</span>;</span><br><span class="line">    <span class="keyword">while</span> (s. length() &gt; <span class="number">0</span>) &#123;</span><br><span class="line">        rword += s. pop();</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> (word == rword) &#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="literal">true</span>;</span><br><span class="line">    &#125;<span class="keyword">else</span> &#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="literal">false</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> word = <span class="string">"hello"</span> ;</span><br><span class="line"><span class="keyword">if</span> (isPalindrome(word)) &#123;</span><br><span class="line">    <span class="built_in">console</span>.log(word + <span class="string">" is a palindrome. "</span> );</span><br><span class="line">&#125;<span class="keyword">else</span> &#123;</span><br><span class="line">    <span class="built_in">console</span>.log(word + <span class="string">" is not a palindrome. "</span> );</span><br><span class="line">&#125;</span><br><span class="line">word = <span class="string">"racecar"</span></span><br><span class="line"><span class="keyword">if</span> (isPalindrome(word)) &#123;</span><br><span class="line">    <span class="built_in">console</span>.log(word + <span class="string">" is a palindrome. "</span> );</span><br><span class="line">&#125;<span class="keyword">else</span> &#123;</span><br><span class="line">    <span class="built_in">console</span>.log(word + <span class="string">" is not a palindrome. "</span> );</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
 <ul>
 <li>用栈实现函数的递归调用<br>求阶乘5! = 5<em>4</em>3<em>2</em>1 = 120</li>
 </ul>
-<figure class="highlight openscad"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span>  <span class="title">factorial</span><span class="params">(n)</span>&#123;</span></span><br><span class="line">    <span class="keyword">if</span><span class="params">(n == <span class="number">0</span>)</span>&#123;</span><br><span class="line">        return <span class="number">1</span>;</span><br><span class="line">    &#125;<span class="keyword">else</span>&#123;</span><br><span class="line">        return n <span class="built_in">*</span> factorial<span class="params">(n-<span class="number">1</span>)</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">fact</span><span class="params">(n)</span>&#123;</span></span><br><span class="line">    var s = new Stack<span class="params">()</span>;</span><br><span class="line">    while<span class="params">(n&gt;<span class="number">1</span>)</span>&#123;</span><br><span class="line">        s.push<span class="params">(n--)</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    var product = <span class="number">1</span>;</span><br><span class="line">    while<span class="params">(s.length<span class="params">()</span> &gt; <span class="number">0</span>)</span>&#123;</span><br><span class="line">        product <span class="built_in">*</span>= s.pop<span class="params">()</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    return product;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">console.<span class="built_in">log</span><span class="params">(factorial<span class="params">(<span class="number">5</span>)</span>)</span>;</span><br><span class="line">console.<span class="built_in">log</span><span class="params">(fact<span class="params">(<span class="number">5</span>)</span>)</span>;</span><br></pre></td></tr></table></figure>
+<figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span>  <span class="title">factorial</span>(<span class="params">n</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">if</span>(n == <span class="number">0</span>)&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="number">1</span>;</span><br><span class="line">    &#125;<span class="keyword">else</span>&#123;</span><br><span class="line">        <span class="keyword">return</span> n * factorial(n-<span class="number">1</span>);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">fact</span>(<span class="params">n</span>)</span>&#123;</span><br><span class="line">    <span class="keyword">var</span> s = <span class="keyword">new</span> Stack();</span><br><span class="line">    <span class="keyword">while</span>(n&gt;<span class="number">1</span>)&#123;</span><br><span class="line">        s.push(n--);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">var</span> product = <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">while</span>(s.length() &gt; <span class="number">0</span>)&#123;</span><br><span class="line">        product *= s.pop();</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> product;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="built_in">console</span>.log(factorial(<span class="number">5</span>));</span><br><span class="line"><span class="built_in">console</span>.log(fact(<span class="number">5</span>));</span><br></pre></td></tr></table></figure>
       
     </div>
 
@@ -267,13 +267,13 @@
         <div class="post-nav">
           <div class="post-nav-prev post-nav-item">
             
-              <a href="/2015/05/29/javascript-note-04/">JavaScript学习笔记-列表</a>
+              <a href="/2015/05/29/netmapping-01/">分布式端口映射NetMapping的设计与实现</a>
             
           </div>
 
           <div class="post-nav-next post-nav-item">
             
-              <a href="/2015/05/29/netmapping-01/">分布式端口映射NetMapping的设计与实现</a>
+              <a href="/2015/05/29/javascript-note-04/">JavaScript学习笔记-列表</a>
             
           </div>
         </div>
@@ -383,6 +383,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/2015/05/29/netmapping-01/index.html b/2015/05/29/netmapping-01/index.html
index 84b1668..ce266f4 100644
--- a/2015/05/29/netmapping-01/index.html
+++ b/2015/05/29/netmapping-01/index.html
@@ -235,12 +235,14 @@
         <div class="post-nav">
           <div class="post-nav-prev post-nav-item">
             
-              <a href="/2015/05/29/javascript-note-05/">JavaScript学习笔记-栈</a>
+              <a href="/2015/06/06/coredump-01/">使用gdb解析core dump-概念篇</a>
             
           </div>
 
           <div class="post-nav-next post-nav-item">
             
+              <a href="/2015/05/29/javascript-note-05/">JavaScript学习笔记-栈</a>
+            
           </div>
         </div>
       
@@ -349,6 +351,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/2015/06/06/coredump-01/index.html b/2015/06/06/coredump-01/index.html
index 3e51455..4b0c720 100644
--- a/2015/06/06/coredump-01/index.html
+++ b/2015/06/06/coredump-01/index.html
@@ -223,7 +223,7 @@
 <p><strong>修改core文件位置</strong></p>
 <p>默认情况下会在程序所在目录生成文件名为<code>core</code>的core文件;<br>使用<code>echo 1 &gt; /proc/sys/kernel/core_uses_pid</code>可以在生成带进程PID的core文件,文件形式为<code>core.pid</code>;<br>使用<code>echo &quot;/tmp/core/core-%e.%p&quot; &gt; /proc/sys/kernel/core_pattern</code>可以在<code>/tmp/core</code>中生成格式为<code>core-程序名.pid</code>的core文件。</p>
 <h3 id="Core_dump如何产生?">Core dump如何产生?</h3><p>我们知道了程序在<strong>程序崩溃</strong>或者<strong>异常终止</strong>的时候会产生core文件呢?那么使用<code>kill -9</code>会产生core文件吗?<br>我们不妨做个试验。我们给helloword程序加上死循环来进行测试。</p>
-<figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="preprocessor">#<span class="keyword">include</span> &lt;stdio.h&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">(<span class="keyword">int</span> argc, <span class="keyword">char</span> **argv)</span></span><br><span class="line"></span>&#123;</span><br><span class="line">    <span class="keyword">while</span>(<span class="number">1</span>)&#123;</span><br><span class="line">        <span class="built_in">fprintf</span>(stdout,<span class="string">"Hello World!\n"</span>);</span><br><span class="line">        fflush(stdout);</span><br><span class="line">        sleep(<span class="number">5</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="preprocessor">#<span class="keyword">include</span> &lt;stdio.h&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">(<span class="keyword">int</span> argc, <span class="keyword">char</span> **argv)</span></span><br><span class="line"></span>&#123;</span><br><span class="line">    <span class="keyword">while</span>(<span class="number">1</span>)&#123;</span><br><span class="line">        <span class="built_in">fprintf</span>(stdout,<span class="string">"Hello World!\n"</span>);</span><br><span class="line">        fflush(stdout);</span><br><span class="line">        sleep(<span class="number">5</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
 <figure class="highlight elixir"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable">$ </span>gcc hello.c -o hello</span><br><span class="line"><span class="variable">$ </span>./hello</span><br><span class="line"><span class="constant">Hello World!</span></span><br><span class="line"><span class="constant">Hello World!</span></span><br><span class="line"><span class="variable">$ </span>ps -ef | grep hello</span><br><span class="line">archerd+  <span class="number">2890</span>  <span class="number">2044</span>  <span class="number">0</span> <span class="number">20</span><span class="symbol">:</span><span class="number">55</span> pts/<span class="number">1</span>    <span class="number">00</span><span class="symbol">:</span><span class="number">00</span><span class="symbol">:</span><span class="number">00</span> ./hello</span><br></pre></td></tr></table></figure>
 <p>接下来我们使用下面的命令结束进程,发现没有生成core文件。</p>
 <blockquote>
@@ -258,7 +258,7 @@
 
           <div class="post-nav-next post-nav-item">
             
-              <a href="/2015/05/29/javascript-note-01/">JavaScript学习笔记-数组</a>
+              <a href="/2015/05/29/netmapping-01/">分布式端口映射NetMapping的设计与实现</a>
             
           </div>
         </div>
@@ -368,6 +368,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/2015/06/11/coredump-02/index.html b/2015/06/11/coredump-02/index.html
index c311234..c771365 100644
--- a/2015/06/11/coredump-02/index.html
+++ b/2015/06/11/coredump-02/index.html
@@ -224,19 +224,19 @@
 <p>接下来开始解析这个core文件;错误提示非常明显<code>Program terminated with signal SIGQUIT, Quit.</code>;</p>
 <figure class="highlight nimrod"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">archerding@ubuntu:/tmp/core$ gdb ~/hello core-hello.<span class="number">2213</span></span><br><span class="line"><span class="type">GNU</span> gdb (<span class="type">Ubuntu</span> <span class="number">7</span>.<span class="number">9</span>-<span class="number">1</span>ubuntu1) <span class="number">7</span>.<span class="number">9</span></span><br><span class="line"><span class="type">Copyright</span> (C) <span class="number">2015</span> <span class="type">Free</span> <span class="type">Software</span> <span class="type">Foundation</span>, <span class="type">Inc</span>.</span><br><span class="line"><span class="type">License</span> <span class="type">GPLv3</span>+: <span class="type">GNU</span> <span class="type">GPL</span> version <span class="number">3</span> <span class="keyword">or</span> later &lt;http://gnu.org/licenses/gpl.html&gt;</span><br><span class="line"><span class="type">This</span> <span class="keyword">is</span> free software: you are free to change <span class="keyword">and</span> redistribute it.</span><br><span class="line"><span class="type">There</span> <span class="keyword">is</span> <span class="type">NO</span> <span class="type">WARRANTY</span>, to the extent permitted by law.  <span class="type">Type</span> <span class="string">"show copying"</span></span><br><span class="line"><span class="keyword">and</span> <span class="string">"show warranty"</span> <span class="keyword">for</span> details.</span><br><span class="line"><span class="type">This</span> <span class="type">GDB</span> was configured <span class="keyword">as</span> <span class="string">"x86_64-linux-gnu"</span>.</span><br><span class="line"><span class="type">Type</span> <span class="string">"show configuration"</span> <span class="keyword">for</span> configuration details.</span><br><span class="line"><span class="type">For</span> bug reporting instructions, please see:</span><br><span class="line">&lt;http://www.gnu.org/software/gdb/bugs/&gt;.</span><br><span class="line"><span class="type">Find</span> the <span class="type">GDB</span> manual <span class="keyword">and</span> other documentation resources online at:</span><br><span class="line">&lt;http://www.gnu.org/software/gdb/documentation/&gt;.</span><br><span class="line"><span class="type">For</span> help, <span class="keyword">type</span> <span class="string">"help"</span>.</span><br><span class="line"><span class="type">Type</span> <span class="string">"apropos word"</span> to search <span class="keyword">for</span> commands related to <span class="string">"word"</span>...</span><br><span class="line"><span class="type">Reading</span> symbols <span class="keyword">from</span> /home/archerding/hello...(no debugging symbols found)...done.</span><br><span class="line">[<span class="type">New</span> <span class="type">LWP</span> <span class="number">2213</span>]</span><br><span class="line"><span class="type">Core</span> was generated by `./hello'.</span><br><span class="line"><span class="type">Program</span> terminated <span class="keyword">with</span> signal <span class="type">SIGQUIT</span>, <span class="type">Quit</span>.</span><br><span class="line"><span class="comment">#0  0x00007f4e7d2a2c30 in __nanosleep_nocancel ()</span></span><br><span class="line">    at ../sysdeps/unix/syscall-<span class="keyword">template</span>.S:<span class="number">81</span></span><br><span class="line"><span class="number">81</span>	../sysdeps/unix/syscall-<span class="keyword">template</span>.S: <span class="type">No</span> such file <span class="keyword">or</span> directory.</span><br><span class="line">(gdb)</span><br></pre></td></tr></table></figure>
 <h3 id="SIGABRT信号下的Core_dump解析">SIGABRT信号下的Core dump解析</h3><p><code>SIGABRT</code>信号表示调用abort函数;编写新的测试程序,尝试调用一下<code>abort()</code>函数验证一下;</p>
-<figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="preprocessor">#<span class="keyword">include</span> &lt;stdlib.h&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span><br><span class="line"></span>&#123;</span><br><span class="line">    <span class="built_in">abort</span>();</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="preprocessor">#<span class="keyword">include</span> &lt;stdlib.h&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span><br><span class="line"></span>&#123;</span><br><span class="line">    <span class="built_in">abort</span>();</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
 <p>编译执行,果真产生了core文件;</p>
 <figure class="highlight elixir"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">archerding<span class="variable">@ubuntu</span><span class="symbol">:~</span><span class="variable">$ </span>gcc sigabort.c -o sigabort</span><br><span class="line">archerding<span class="variable">@ubuntu</span><span class="symbol">:~</span><span class="variable">$ </span>./sigabort </span><br><span class="line"><span class="constant">Aborted </span>(core dumped)</span><br><span class="line">archerding<span class="variable">@ubuntu</span><span class="symbol">:~</span><span class="variable">$ </span>ls /tmp/core/</span><br><span class="line">core-sigabort.<span class="number">2594</span></span><br></pre></td></tr></table></figure>
 <p>接下来开始解析这个core文件;错误提示非常明显<code>Program terminated with signal SIGABRT, Aborted.</code>;<br>使用<code>bt</code>打印栈信息,定位错误调用了<code>abort()</code>函数。</p>
 <figure class="highlight vhdl"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br></pre></td><td class="code"><pre><span class="line">archerding@ubuntu:/tmp/core$ gdb ~/sigabort core-sigabort.<span class="number">2594</span></span><br><span class="line">GNU gdb (Ubuntu <span class="number">7.9</span>-<span class="number">1</span>ubuntu1) <span class="number">7.9</span></span><br><span class="line">Copyright (C) <span class="number">2015</span> Free Software Foundation, Inc.</span><br><span class="line">License GPLv3+: GNU GPL version <span class="number">3</span> <span class="keyword">or</span> later &lt;http://gnu.org/licenses/gpl.html&gt;</span><br><span class="line">This <span class="keyword">is</span> free software: you are free <span class="keyword">to</span> change <span class="keyword">and</span> redistribute it.</span><br><span class="line">There <span class="keyword">is</span> NO WARRANTY, <span class="keyword">to</span> the extent permitted by law.  <span class="keyword">Type</span> <span class="string">"show copying"</span></span><br><span class="line"><span class="keyword">and</span> <span class="string">"show warranty"</span> <span class="keyword">for</span> details.</span><br><span class="line">This GDB was configured as <span class="string">"x86_64-linux-gnu"</span>.</span><br><span class="line"><span class="keyword">Type</span> <span class="string">"show configuration"</span> <span class="keyword">for</span> <span class="keyword">configuration</span> details.</span><br><span class="line"><span class="keyword">For</span> bug reporting instructions, please see:</span><br><span class="line">&lt;http://www.gnu.org/software/gdb/bugs/&gt;.</span><br><span class="line">Find the GDB manual <span class="keyword">and</span> other documentation resources online at:</span><br><span class="line">&lt;http://www.gnu.org/software/gdb/documentation/&gt;.</span><br><span class="line"><span class="keyword">For</span> help, <span class="keyword">type</span> <span class="string">"help"</span>.</span><br><span class="line"><span class="keyword">Type</span> <span class="string">"apropos word"</span> <span class="keyword">to</span> search <span class="keyword">for</span> commands related <span class="keyword">to</span> <span class="string">"word"</span>...</span><br><span class="line">Reading symbols from /home/archerding/sigabort...(no debugging symbols found)...done.</span><br><span class="line"></span><br><span class="line">warning: exec <span class="keyword">file</span> <span class="keyword">is</span> newer than core <span class="keyword">file</span>.</span><br><span class="line">[<span class="keyword">New</span> LWP <span class="number">2594</span>]</span><br><span class="line">Core was generated by `./sigabort'.</span><br><span class="line">Program terminated <span class="keyword">with</span> <span class="keyword">signal</span> SIGABRT, Aborted.</span><br><span class="line">#<span class="number">0</span>  <span class="number">0</span>x00007ff6657bd267 <span class="keyword">in</span> __GI_raise (sig=sig@entry=<span class="number">6</span>)</span><br><span class="line">    at ../sysdeps/unix/sysv/linux/raise.c:<span class="number">55</span></span><br><span class="line"><span class="number">55</span>	../sysdeps/unix/sysv/linux/raise.c: No such <span class="keyword">file</span> <span class="keyword">or</span> directory.</span><br><span class="line">(gdb) bt</span><br><span class="line">#<span class="number">0</span>  <span class="number">0</span>x00007ff6657bd267 <span class="keyword">in</span> __GI_raise (sig=sig@entry=<span class="number">6</span>)</span><br><span class="line">    at ../sysdeps/unix/sysv/linux/raise.c:<span class="number">55</span></span><br><span class="line">#<span class="number">1</span>  <span class="number">0</span>x00007ff6657beeca <span class="keyword">in</span> __GI_abort () at abort.c:<span class="number">89</span></span><br><span class="line">#<span class="number">2</span>  <span class="number">0</span>x000000000040053f <span class="keyword">in</span> main ()</span><br><span class="line">Print backtrace <span class="keyword">of</span> <span class="keyword">all</span> stack frames, <span class="keyword">or</span> innermost COUNT frames.</span><br><span class="line"><span class="keyword">With</span> a negative argument, print outermost -COUNT frames.</span><br><span class="line"><span class="keyword">Use</span> <span class="keyword">of</span> the <span class="attribute">'full</span>' qualifier also prints the values <span class="keyword">of</span> the local variables.</span><br><span class="line"><span class="keyword">Use</span> <span class="keyword">of</span> the <span class="attribute">'no</span>-filters' qualifier prohibits frame filters from executing</span><br><span class="line"><span class="keyword">on</span> this backtrace.</span><br><span class="line"></span><br><span class="line">(gdb)</span><br></pre></td></tr></table></figure>
 <h3 id="SIGFPE信号下的Core_dump解析">SIGFPE信号下的Core dump解析</h3><p><code>SIGFPE</code>信号表示一个算术运算异常,例如除以0,浮点溢出等;编写新的测试程序,尝试产生<code>SIGFPE</code>信号;</p>
-<figure class="highlight nimrod"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#include &lt;stdlib.h&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> calc(<span class="type">int</span> num)</span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> divider = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> <span class="literal">result</span> = <span class="number">0</span>;</span><br><span class="line">    <span class="literal">result</span> = num / divider;</span><br><span class="line">    <span class="keyword">return</span> <span class="literal">result</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> main()</span><br><span class="line">&#123;</span><br><span class="line">    calc(<span class="number">10</span>);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="preprocessor">#<span class="keyword">include</span> &lt;stdlib.h&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">calc</span><span class="params">(<span class="keyword">int</span> num)</span></span><br><span class="line"></span>&#123;</span><br><span class="line">    <span class="keyword">int</span> divider = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">int</span> result = <span class="number">0</span>;</span><br><span class="line">    result = num / divider;</span><br><span class="line">    <span class="keyword">return</span> result;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span><br><span class="line"></span>&#123;</span><br><span class="line">    calc(<span class="number">10</span>);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
 <p>编译执行,果真产生了core文件;</p>
 <figure class="highlight elixir"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">archerding<span class="variable">@ubuntu</span><span class="symbol">:~</span><span class="variable">$ </span>gcc sigfpe.c -o sigfpe</span><br><span class="line">archerding<span class="variable">@ubuntu</span><span class="symbol">:~</span><span class="variable">$ </span>./sigfpe </span><br><span class="line"><span class="constant">Floating </span>point exception (core dumped)</span><br><span class="line">archerding<span class="variable">@ubuntu</span><span class="symbol">:~</span><span class="variable">$ </span>ls /tmp/core/</span><br><span class="line">core-sigfpe.<span class="number">2722</span></span><br></pre></td></tr></table></figure>
 <p>接下来开始解析这个core文件;错误提示<code>Program terminated with signal SIGFPE, Arithmetic exception.</code>;<br>使用<code>bt</code>打印栈信息,定位错误函数是<code>calc ()</code>函数;<br>使用<code>i r</code>打印寄存器信息,发现在调用到汇编指令地址<code>rip            0x40050f    0x40050f &lt;calc+25&gt;</code>时出现异常;<br>使用<code>disas</code>反汇编问题函数,发现在调用<code>idivl  -0x8(%rbp)</code>时出错,该汇编指令是做除法运算;<br>使用<code>x $rbp-0x8</code>打印除数,发现除数为0。</p>
 <figure class="highlight stata"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br></pre></td><td class="code"><pre><span class="line">archerding@ubuntu:/tmp/core$ gdb ~/sigfpe core-sigfpe.2722</span><br><span class="line">GNU gdb (Ubuntu 7.9-1ubuntu1) 7.9</span><br><span class="line"><span class="keyword">Copyright</span> (C) 2015 Free Software Foundation, Inc.</span><br><span class="line">License GPLv3+: GNU GPL <span class="keyword">version</span> 3 or later &lt;http:<span class="comment">//gnu.org/licenses/gpl.html&gt;</span></span><br><span class="line">This is free software: you are free to change and redistribute it.</span><br><span class="line">There is <span class="keyword">NO</span> WARRANTY, to the extent permitted <span class="keyword">by</span> law.  <span class="keyword">Type</span> <span class="string">"show copying"</span></span><br><span class="line">and <span class="string">"show warranty"</span> <span class="keyword">for</span> details.</span><br><span class="line">This GDB was configured <span class="keyword">as</span> <span class="string">"x86_64-linux-gnu"</span>.</span><br><span class="line"><span class="keyword">Type</span> <span class="string">"show configuration"</span> <span class="keyword">for</span> configuration details.</span><br><span class="line"><span class="keyword">For</span> bug reporting instructions, please see:</span><br><span class="line">&lt;http:<span class="comment">//www.gnu.org/software/gdb/bugs/&gt;.</span></span><br><span class="line">Find the GDB manual and other documentation resources online at:</span><br><span class="line">&lt;http:<span class="comment">//www.gnu.org/software/gdb/documentation/&gt;.</span></span><br><span class="line"><span class="keyword">For</span> <span class="keyword">help</span>, <span class="keyword">type</span> <span class="string">"help"</span>.</span><br><span class="line"><span class="keyword">Type</span> <span class="string">"apropos word"</span> to <span class="keyword">search</span> <span class="keyword">for</span> commands related to <span class="string">"word"</span>...</span><br><span class="line">Reading symbols from /home/archerding/sigfpe...(<span class="keyword">no</span> debugging symbols found)...done.</span><br><span class="line">[New LWP 2722]</span><br><span class="line">Core was generated <span class="keyword">by</span> `./sigfpe'.</span><br><span class="line"><span class="keyword">Program</span> terminated with signal SIGFPE, Arithmetic exception.</span><br><span class="line">#0  0x000000000040050f <span class="keyword">in</span> calc ()</span><br><span class="line">(gdb) bt</span><br><span class="line">#0  0x000000000040050f <span class="keyword">in</span> calc ()</span><br><span class="line">#1  0x0000000000400528 <span class="keyword">in</span> main ()</span><br><span class="line">(gdb) i <span class="literal">r</span></span><br><span class="line">rax            0xa	10</span><br><span class="line">rbx            0x0	0</span><br><span class="line">rcx            0x0	0</span><br><span class="line">rdx            0x0	0</span><br><span class="line">rsi            0x7ffcb45b2198	140723334357400</span><br><span class="line">rdi            0xa	10</span><br><span class="line">rbp            0x7ffcb45b20a0	0x7ffcb45b20a0</span><br><span class="line">rsp            0x7ffcb45b20a0	0x7ffcb45b20a0</span><br><span class="line">r8             0x7ff8d052ddd0	140706623708624</span><br><span class="line">r9             0x7ff8d05489d0	140706623818192</span><br><span class="line">r10            0x833	2099</span><br><span class="line">r11            0x7ff8d0188950	140706619885904</span><br><span class="line">r12            0x400400	4195328</span><br><span class="line">r13            0x7ffcb45b2190	140723334357392</span><br><span class="line">r14            0x0	0</span><br><span class="line">r15            0x0	0</span><br><span class="line">rip            0x40050f	0x40050f &lt;calc+25&gt;</span><br><span class="line">eflags         0x10246	[ PF ZF <span class="keyword">IF</span> RF ]</span><br><span class="line"><span class="keyword">cs</span>             0x33	51</span><br><span class="line">ss             0x2b	43</span><br><span class="line"><span class="keyword">ds</span>             0x0	0</span><br><span class="line">es             0x0	0</span><br><span class="line">fs             0x0	0</span><br><span class="line">---<span class="keyword">Type</span> &lt;<span class="keyword">return</span>&gt; to <span class="keyword">continue</span>, or q &lt;<span class="keyword">return</span>&gt; to quit---</span><br><span class="line">gs             0x0	0</span><br><span class="line">(gdb) disas</span><br><span class="line">Dump of assembler code <span class="keyword">for</span> function calc:</span><br><span class="line">   0x00000000004004f6 &lt;+0&gt;:	push   %rbp</span><br><span class="line">   0x00000000004004f7 &lt;+1&gt;:	<span class="keyword">mov</span>    %rsp,%rbp</span><br><span class="line">   0x00000000004004fa &lt;+4&gt;:	<span class="keyword">mov</span>    %<span class="keyword">edi</span>,-0x14(%rbp)</span><br><span class="line">   0x00000000004004fd &lt;+7&gt;:	movl   <span class="label">$0x0</span>,-0x8(%rbp)</span><br><span class="line">   0x0000000000400504 &lt;+14&gt;:	movl   <span class="label">$0x0</span>,-0x4(%rbp)</span><br><span class="line">   0x000000000040050b &lt;+21&gt;:	<span class="keyword">mov</span>    -0x14(%rbp),%eax</span><br><span class="line">   0x000000000040050e &lt;+24&gt;:	cltd   </span><br><span class="line">=&gt; 0x000000000040050f &lt;+25&gt;:	idivl  -0x8(%rbp)</span><br><span class="line">   0x0000000000400512 &lt;+28&gt;:	<span class="keyword">mov</span>    %eax,-0x4(%rbp)</span><br><span class="line">   0x0000000000400515 &lt;+31&gt;:	<span class="keyword">mov</span>    -0x4(%rbp),%eax</span><br><span class="line">   0x0000000000400518 &lt;+34&gt;:	pop    %rbp</span><br><span class="line">   0x0000000000400519 &lt;+35&gt;:	retq   </span><br><span class="line">End of assembler dump.</span><br><span class="line">(gdb) x <span class="label">$rbp</span>-0x8</span><br><span class="line">0x7ffcb45b2098:	0x00000000</span><br></pre></td></tr></table></figure>
 <h3 id="SIGSEGV信号下的Core_dump解析">SIGSEGV信号下的Core dump解析</h3><p><code>SIGSEGV</code>信号表示进程进行了一次无效的存储访问,EGV表示段违例(segmentation violation);编写新的测试程序,尝试产生<code>SIGSEGV</code>信号;</p>
-<figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="preprocessor">#<span class="keyword">include</span> &lt;stdlib.h&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">const</span> <span class="keyword">char</span> *str = <span class="string">"hello World!"</span>;</span><br><span class="line"> </span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">mod_str</span><span class="params">()</span></span><br><span class="line"></span>&#123;</span><br><span class="line">    str[<span class="number">0</span>] = <span class="string">'H'</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span><br><span class="line"></span>&#123;</span><br><span class="line">    mod_str();</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="preprocessor">#<span class="keyword">include</span> &lt;stdlib.h&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">const</span> <span class="keyword">char</span> *str = <span class="string">"hello World!"</span>;</span><br><span class="line"> </span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">mod_str</span><span class="params">()</span></span><br><span class="line"></span>&#123;</span><br><span class="line">    str[<span class="number">0</span>] = <span class="string">'H'</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span><br><span class="line"></span>&#123;</span><br><span class="line">    mod_str();</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
 <p>编译执行,果真产生了core文件;</p>
 <figure class="highlight elixir"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">archerding<span class="variable">@ubuntu</span><span class="symbol">:~</span><span class="variable">$ </span>gcc sigsegv.c -o sigsegv</span><br><span class="line">archerding<span class="variable">@ubuntu</span><span class="symbol">:~</span><span class="variable">$ </span>./sigsegv </span><br><span class="line"><span class="constant">Segmentation </span>fault (core dumped)</span><br><span class="line">archerding<span class="variable">@ubuntu</span><span class="symbol">:~</span><span class="variable">$ </span>ls /tmp/core/</span><br><span class="line">core-sigsegv.<span class="number">2856</span></span><br></pre></td></tr></table></figure>
 <p>接下来开始解析这个core文件;错误提示<code>Program terminated with signal SIGSEGV, Segmentation fault.</code>;<br>使用<code>bt</code>打印栈信息,定位错误函数是<code>mod_str()</code>函数;<br>使用<code>i r</code>打印寄存器信息,发现在调用到汇编指令地址<code>rip           0x400509    0x400509 &lt;mod_str+19&gt;</code>时出现异常;<br>使用<code>disas</code>反汇编问题函数,发现在调用<code>movb   $0x48,(%rax)</code>时出错;<br>使用<code>x /16s $rax</code>打印错误地址指向的内存,发现改地址是<code>0x4005b4</code>指向了字符串<code>hello World!</code>;<br>使用<code>info proc map</code>查看内存映射,处于第一个区域内。</p>
@@ -373,6 +373,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/about/index.html b/about/index.html
index 49b5283..ada1b01 100644
--- a/about/index.html
+++ b/about/index.html
@@ -250,6 +250,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/archives/2015/05/index.html b/archives/2015/05/index.html
index 6df8798..6fd8d55 100644
--- a/archives/2015/05/index.html
+++ b/archives/2015/05/index.html
@@ -195,8 +195,70 @@
 
       <div class="post-title">
         
-            <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
-              JavaScript学习笔记-数组
+            <a class="post-title-link" href="/2015/05/29/netmapping-01/">
+              分布式端口映射NetMapping的设计与实现
+            </a>
+        
+      </div>
+
+      <div class="post-meta">
+        <span class="post-time"> 05-29 </span>
+      </div>
+
+    </div>
+  </div>
+
+
+
+    
+
+      
+      
+      
+
+      
+      
+
+      
+
+  <div class="post post-type-normal">
+    <div class="post-header">
+
+      <div class="post-title">
+        
+            <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
+              JavaScript学习笔记-栈
+            </a>
+        
+      </div>
+
+      <div class="post-meta">
+        <span class="post-time"> 05-29 </span>
+      </div>
+
+    </div>
+  </div>
+
+
+
+    
+
+      
+      
+      
+
+      
+      
+
+      
+
+  <div class="post post-type-normal">
+    <div class="post-header">
+
+      <div class="post-title">
+        
+            <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
+              JavaScript学习笔记-列表
             </a>
         
       </div>
@@ -288,70 +350,8 @@
 
       <div class="post-title">
         
-            <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
-              JavaScript学习笔记-列表
-            </a>
-        
-      </div>
-
-      <div class="post-meta">
-        <span class="post-time"> 05-29 </span>
-      </div>
-
-    </div>
-  </div>
-
-
-
-    
-
-      
-      
-      
-
-      
-      
-
-      
-
-  <div class="post post-type-normal">
-    <div class="post-header">
-
-      <div class="post-title">
-        
-            <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
-              JavaScript学习笔记-栈
-            </a>
-        
-      </div>
-
-      <div class="post-meta">
-        <span class="post-time"> 05-29 </span>
-      </div>
-
-    </div>
-  </div>
-
-
-
-    
-
-      
-      
-      
-
-      
-      
-
-      
-
-  <div class="post post-type-normal">
-    <div class="post-header">
-
-      <div class="post-title">
-        
-            <a class="post-title-link" href="/2015/05/29/netmapping-01/">
-              分布式端口映射NetMapping的设计与实现
+            <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
+              JavaScript学习笔记-数组
             </a>
         
       </div>
@@ -446,6 +446,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/archives/2015/06/index.html b/archives/2015/06/index.html
index 085361a..4f7dd83 100644
--- a/archives/2015/06/index.html
+++ b/archives/2015/06/index.html
@@ -322,6 +322,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/archives/2015/index.html b/archives/2015/index.html
index 0d33c4c..2f01fa8 100644
--- a/archives/2015/index.html
+++ b/archives/2015/index.html
@@ -257,8 +257,70 @@
 
       <div class="post-title">
         
-            <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
-              JavaScript学习笔记-数组
+            <a class="post-title-link" href="/2015/05/29/netmapping-01/">
+              分布式端口映射NetMapping的设计与实现
+            </a>
+        
+      </div>
+
+      <div class="post-meta">
+        <span class="post-time"> 05-29 </span>
+      </div>
+
+    </div>
+  </div>
+
+
+
+    
+
+      
+      
+      
+
+      
+      
+
+      
+
+  <div class="post post-type-normal">
+    <div class="post-header">
+
+      <div class="post-title">
+        
+            <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
+              JavaScript学习笔记-栈
+            </a>
+        
+      </div>
+
+      <div class="post-meta">
+        <span class="post-time"> 05-29 </span>
+      </div>
+
+    </div>
+  </div>
+
+
+
+    
+
+      
+      
+      
+
+      
+      
+
+      
+
+  <div class="post post-type-normal">
+    <div class="post-header">
+
+      <div class="post-title">
+        
+            <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
+              JavaScript学习笔记-列表
             </a>
         
       </div>
@@ -350,70 +412,8 @@
 
       <div class="post-title">
         
-            <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
-              JavaScript学习笔记-列表
-            </a>
-        
-      </div>
-
-      <div class="post-meta">
-        <span class="post-time"> 05-29 </span>
-      </div>
-
-    </div>
-  </div>
-
-
-
-    
-
-      
-      
-      
-
-      
-      
-
-      
-
-  <div class="post post-type-normal">
-    <div class="post-header">
-
-      <div class="post-title">
-        
-            <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
-              JavaScript学习笔记-栈
-            </a>
-        
-      </div>
-
-      <div class="post-meta">
-        <span class="post-time"> 05-29 </span>
-      </div>
-
-    </div>
-  </div>
-
-
-
-    
-
-      
-      
-      
-
-      
-      
-
-      
-
-  <div class="post post-type-normal">
-    <div class="post-header">
-
-      <div class="post-title">
-        
-            <a class="post-title-link" href="/2015/05/29/netmapping-01/">
-              分布式端口映射NetMapping的设计与实现
+            <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
+              JavaScript学习笔记-数组
             </a>
         
       </div>
@@ -508,6 +508,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/archives/index.html b/archives/index.html
index 0d33c4c..2f01fa8 100644
--- a/archives/index.html
+++ b/archives/index.html
@@ -257,8 +257,70 @@
 
       <div class="post-title">
         
-            <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
-              JavaScript学习笔记-数组
+            <a class="post-title-link" href="/2015/05/29/netmapping-01/">
+              分布式端口映射NetMapping的设计与实现
+            </a>
+        
+      </div>
+
+      <div class="post-meta">
+        <span class="post-time"> 05-29 </span>
+      </div>
+
+    </div>
+  </div>
+
+
+
+    
+
+      
+      
+      
+
+      
+      
+
+      
+
+  <div class="post post-type-normal">
+    <div class="post-header">
+
+      <div class="post-title">
+        
+            <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
+              JavaScript学习笔记-栈
+            </a>
+        
+      </div>
+
+      <div class="post-meta">
+        <span class="post-time"> 05-29 </span>
+      </div>
+
+    </div>
+  </div>
+
+
+
+    
+
+      
+      
+      
+
+      
+      
+
+      
+
+  <div class="post post-type-normal">
+    <div class="post-header">
+
+      <div class="post-title">
+        
+            <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
+              JavaScript学习笔记-列表
             </a>
         
       </div>
@@ -350,70 +412,8 @@
 
       <div class="post-title">
         
-            <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
-              JavaScript学习笔记-列表
-            </a>
-        
-      </div>
-
-      <div class="post-meta">
-        <span class="post-time"> 05-29 </span>
-      </div>
-
-    </div>
-  </div>
-
-
-
-    
-
-      
-      
-      
-
-      
-      
-
-      
-
-  <div class="post post-type-normal">
-    <div class="post-header">
-
-      <div class="post-title">
-        
-            <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
-              JavaScript学习笔记-栈
-            </a>
-        
-      </div>
-
-      <div class="post-meta">
-        <span class="post-time"> 05-29 </span>
-      </div>
-
-    </div>
-  </div>
-
-
-
-    
-
-      
-      
-      
-
-      
-      
-
-      
-
-  <div class="post post-type-normal">
-    <div class="post-header">
-
-      <div class="post-title">
-        
-            <a class="post-title-link" href="/2015/05/29/netmapping-01/">
-              分布式端口映射NetMapping的设计与实现
+            <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
+              JavaScript学习笔记-数组
             </a>
         
       </div>
@@ -508,6 +508,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/categories/Golang/index.html b/categories/Golang/index.html
index 3f44f0d..78c01fc 100644
--- a/categories/Golang/index.html
+++ b/categories/Golang/index.html
@@ -272,6 +272,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/categories/JavaScript/index.html b/categories/JavaScript/index.html
index 219a07b..8704b19 100644
--- a/categories/JavaScript/index.html
+++ b/categories/JavaScript/index.html
@@ -178,8 +178,30 @@
 
       <div class="post-title">
         
-            <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
-              JavaScript学习笔记-数组
+            <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
+              JavaScript学习笔记-栈
+            </a>
+        
+      </div>
+
+      <div class="post-meta">
+        <span class="post-time"> 05-29 </span>
+      </div>
+
+    </div>
+  </div>
+
+
+    
+      
+
+  <div class="post post-type-normal">
+    <div class="post-header">
+
+      <div class="post-title">
+        
+            <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
+              JavaScript学习笔记-列表
             </a>
         
       </div>
@@ -244,30 +266,8 @@
 
       <div class="post-title">
         
-            <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
-              JavaScript学习笔记-列表
-            </a>
-        
-      </div>
-
-      <div class="post-meta">
-        <span class="post-time"> 05-29 </span>
-      </div>
-
-    </div>
-  </div>
-
-
-    
-      
-
-  <div class="post post-type-normal">
-    <div class="post-header">
-
-      <div class="post-title">
-        
-            <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
-              JavaScript学习笔记-栈
+            <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
+              JavaScript学习笔记-数组
             </a>
         
       </div>
@@ -360,6 +360,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/categories/coredump/index.html b/categories/coredump/index.html
index 2ce4106..19dd8fe 100644
--- a/categories/coredump/index.html
+++ b/categories/coredump/index.html
@@ -294,6 +294,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/categories/index.html b/categories/index.html
index 2e72c08..d286252 100644
--- a/categories/index.html
+++ b/categories/index.html
@@ -257,6 +257,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/css/main.css b/css/main.css
index 29e61db..b9a1bfc 100644
--- a/css/main.css
+++ b/css/main.css
@@ -1167,7 +1167,7 @@
   width: 4px;
   height: 4px;
   border-radius: 50%;
-  background: #34ffed;
+  background: #ff615e;
 }
 .sidebar-nav {
   margin: 0;
diff --git a/index.html b/index.html
index 00c83c4..32a99f3 100644
--- a/index.html
+++ b/index.html
@@ -340,8 +340,89 @@
           
           
             
-              <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
-                JavaScript学习笔记-数组
+              <a class="post-title-link" href="/2015/05/29/netmapping-01/">
+                分布式端口映射NetMapping的设计与实现
+              </a>
+            
+          
+        </h1>
+      
+
+      <div class="post-meta">
+        <span class="post-time">
+          发表于 2015-05-29
+        </span>
+
+        
+          <span class="post-category">
+            &nbsp; | &nbsp; 分类于
+            
+              <a href="/categories/Golang/">Golang</a>
+
+              
+              
+
+            
+          </span>
+        
+
+        
+          
+            <span class="post-comments-count">
+            &nbsp; | &nbsp;
+            <a href="/2015/05/29/netmapping-01/#comments" >
+              <span class="post-comments-count ds-thread-count" data-thread-key="2015/05/29/netmapping-01/"></span>
+            </a>
+          </span>
+          
+        
+      </div>
+    </div>
+
+    <div class="post-body">
+
+      
+      
+
+      
+        
+          <h4 id="架构设计">架构设计</h4><p><img src="/images/netmapping-01/NetMapping.png" alt="这是一张图片"><br><img src="/images/netmapping-01/UseCase.png" alt="这是一张图片"><br>
+          <div class="post-more-link text-center">
+            <a class="btn" href="/2015/05/29/netmapping-01/#more">
+              阅读全文 &raquo;
+            </a>
+          </div>
+        
+      
+    </div>
+
+    <div class="post-footer">
+      
+
+      
+
+      
+      
+        <div class="post-eof"></div>
+      
+    </div>
+  </div>
+
+
+    
+      
+
+  <div class="post post-type-normal ">
+    <div class="post-header">
+
+      
+      
+        <h1 class="post-title">
+          
+          
+            
+              <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
+                JavaScript学习笔记-栈
               </a>
             
           
@@ -370,8 +451,8 @@
           
             <span class="post-comments-count">
             &nbsp; | &nbsp;
-            <a href="/2015/05/29/javascript-note-01/#comments" >
-              <span class="post-comments-count ds-thread-count" data-thread-key="2015/05/29/javascript-note-01/"></span>
+            <a href="/2015/05/29/javascript-note-05/#comments" >
+              <span class="post-comments-count ds-thread-count" data-thread-key="2015/05/29/javascript-note-05/"></span>
             </a>
           </span>
           
@@ -386,11 +467,18 @@
 
       
         
-          <h3 id="什么是数组">什么是数组</h3><p>通常数组是一种线性结构,但是JavaScript中的数组是一个<strong>特殊的对象</strong>,其索引值在内部被转换成字符串处理。</p>
-<h3 id="创建数组">创建数组</h3><figure class="highlight smali"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">var<span class="instruction"> array </span>= <span class="keyword">[</span>];   //length = 0</span><br><span class="line">var<span class="instruction"> array </span>= <span class="keyword">[</span>10]; //length = 1</span><br><span class="line">var<span class="instruction"> array </span>= <span class="keyword">[</span>1,2,3,4,5];//length = 5</span><br><span class="line">var<span class="instruction"> array </span>=<span class="instruction"> new </span>Array(<span class="function">)</span>; //length = 0</span><br><span class="line">var<span class="instruction"> array </span>=<span class="instruction"> new </span>Array(10<span class="function">)</span>; //length = 10</span><br><span class="line">var<span class="instruction"> array </span>=<span class="instruction"> new </span>Array(1,2,3,4,6<span class="function">)</span>; //length = 5</span><br></pre></td></tr></table></figure>
-<p><em>使用[]创建数组的效率高,因为字符少。</em></p>
+          <h3 id="什么是栈">什么是栈</h3><p>栈是一种被称为后入先出(LIFO,last in first out)的数据结构.是一个特殊的列表,栈内的元素只能通过一端访问,这个端被称为栈顶.</p>
+<h3 id="如何定义栈">如何定义栈</h3><ul>
+<li>方法:将一个元素压入栈push(element)</li>
+<li>方法:将一个元素弹出栈pop()-&gt;element   被弹出的元素从栈中永久性删除</li>
+<li>方法:预览栈顶元素peek()-&gt;element         只返回栈顶元素,不删除该元素</li>
+<li>方法:清除栈内所有元素clear()   可以将top=0快速清空栈</li>
+<li>方法:栈内元素的个数:length()-&gt;number //可以使用top获取</li>
+<li>属性:栈顶元素位置number:top</li>
+<li>属性:栈内是否有元素boolean:empty  //可以使用top=0进行判断,</li>
+</ul>
           <div class="post-more-link text-center">
-            <a class="btn" href="/2015/05/29/javascript-note-01/#more">
+            <a class="btn" href="/2015/05/29/javascript-note-05/#more">
               阅读全文 &raquo;
             </a>
           </div>
@@ -423,6 +511,82 @@
           
           
             
+              <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
+                JavaScript学习笔记-列表
+              </a>
+            
+          
+        </h1>
+      
+
+      <div class="post-meta">
+        <span class="post-time">
+          发表于 2015-05-29
+        </span>
+
+        
+          <span class="post-category">
+            &nbsp; | &nbsp; 分类于
+            
+              <a href="/categories/JavaScript/">JavaScript</a>
+
+              
+              
+
+            
+          </span>
+        
+
+        
+          
+            <span class="post-comments-count">
+            &nbsp; | &nbsp;
+            <a href="/2015/05/29/javascript-note-04/#comments" >
+              <span class="post-comments-count ds-thread-count" data-thread-key="2015/05/29/javascript-note-04/"></span>
+            </a>
+          </span>
+          
+        
+      </div>
+    </div>
+
+    <div class="post-body">
+
+      
+      
+
+      
+        
+          <h4 id="JavaScript学习笔记-列表">JavaScript学习笔记-列表</h4><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">List</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.listSize = <span class="number">0</span>;</span><br><span class="line">  <span class="keyword">this</span>.pos = <span class="number">0</span>;</span><br><span class="line">  <span class="keyword">this</span>.dataStore = [];</span><br><span class="line">  <span class="keyword">this</span>.clear = clear;</span><br><span class="line">  <span class="keyword">this</span>.find = find;</span><br><span class="line">  <span class="keyword">this</span>.toString = toString;</span><br><span class="line">  <span class="keyword">this</span>.insert = insert;</span><br><span class="line">  <span class="keyword">this</span>.append = append;</span><br><span class="line">  <span class="keyword">this</span>.remove = remove;</span><br><span class="line">  <span class="keyword">this</span>.front = front;</span><br><span class="line">  <span class="keyword">this</span>.end = end;</span><br><span class="line">  <span class="keyword">this</span>.prev = prev;</span><br><span class="line">  <span class="keyword">this</span>.next = next;</span><br><span class="line">  <span class="keyword">this</span>.length = length;</span><br><span class="line">  <span class="keyword">this</span>.currPos = currPos;</span><br><span class="line">  <span class="keyword">this</span>.moveTo = moveTo;</span><br><span class="line">  <span class="keyword">this</span>.getElement = getElement;</span><br><span class="line">  <span class="keyword">this</span>.contains = contains;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">clear</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">delete</span> <span class="keyword">this</span>.dataStore;</span><br><span class="line">  <span class="keyword">this</span>.dataStore = [];</span><br><span class="line">  <span class="keyword">this</span>.listSize = <span class="keyword">this</span>.pos = <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">insert</span>(<span class="params">element,after</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">var</span> index = <span class="keyword">this</span>.find(element);</span><br><span class="line">  <span class="keyword">if</span>(index &gt; -<span class="number">1</span>)&#123;</span><br><span class="line">    <span class="keyword">this</span>.dataStore.splice(index + <span class="number">1</span>, <span class="number">0</span>, element);</span><br><span class="line">    ++<span class="keyword">this</span>.listSize;</span><br><span class="line">    <span class="keyword">return</span> <span class="literal">true</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">return</span> <span class="literal">false</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">front</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.pos = <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">end</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.pos = <span class="keyword">this</span>.listSize - <span class="number">1</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">prev</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  --<span class="keyword">this</span>.pos;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">next</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  ++<span class="keyword">this</span>.pos;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">currPos</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">this</span>.pos;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">moveTo</span>(<span class="params">position</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.pos = position;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">getElement</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">this</span>.dataStore[<span class="keyword">this</span>.pos];</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">contains</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">if</span>(<span class="keyword">this</span>.find(element) &gt; -<span class="number">1</span>)</span><br><span class="line">  &#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="literal">true</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">return</span> <span class="literal">false</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">find</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">this</span>.dataStore.indexOf(element);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">append</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.dataStore[<span class="keyword">this</span>.listSize++] = element;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">remove</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">var</span> index = <span class="keyword">this</span>.find(element);</span><br><span class="line">  <span class="keyword">if</span>(index &gt; -<span class="number">1</span>)&#123;</span><br><span class="line">    <span class="keyword">this</span>.dataStore.splice(index,<span class="number">1</span>);</span><br><span class="line">    --<span class="keyword">this</span>.listSize;</span><br><span class="line">    <span class="keyword">return</span> <span class="literal">true</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">return</span> <span class="literal">false</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">length</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">this</span>.listSize;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">toString</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">this</span>.dataStore;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> names = <span class="keyword">new</span> List();</span><br><span class="line">names.append(<span class="string">"Clayton"</span>);</span><br><span class="line">names.append(<span class="string">"Raymond"</span>);</span><br><span class="line">names.append(<span class="string">"Cynthia"</span>);</span><br><span class="line">names.append(<span class="string">"Jennifer"</span>);</span><br><span class="line">names.append(<span class="string">"Bryan"</span>);</span><br><span class="line">names.append(<span class="string">"Danny"</span>);</span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span>(names.front(); names.currPos() &lt; names.length(); names.next()) &#123;</span><br><span class="line">  <span class="built_in">console</span>.log(names.getElement());</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span>(names.end(); names.currPos() &gt;= <span class="number">0</span>; names.prev()) &#123;</span><br><span class="line">  <span class="built_in">console</span>.log(names.getElement());</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+        
+      
+    </div>
+
+    <div class="post-footer">
+      
+
+      
+
+      
+      
+        <div class="post-eof"></div>
+      
+    </div>
+  </div>
+
+
+    
+      
+
+  <div class="post post-type-normal ">
+    <div class="post-header">
+
+      
+      
+        <h1 class="post-title">
+          
+          
+            
               <a class="post-title-link" href="/2015/05/29/javascript-note-03/">
                 JavaScript学习笔记-数组练习题
               </a>
@@ -551,7 +715,7 @@
       
         
           <h3 id="二维数组">二维数组</h3><p>JavaScript只支持一维数组,但是通过在数组里保存数组元素的方式,可以轻松创建多维<br>数组。</p>
-<h3 id="创建二维数组">创建二维数组</h3><figure class="highlight inform7"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">var twod = <span class="comment">[]</span>;</span><br><span class="line">var rows = 5;</span><br><span class="line">for (var i = 0; i &lt; rows; ++i) &#123;</span><br><span class="line">    twod<span class="comment">[i]</span> = <span class="comment">[]</span>;</span><br><span class="line">&#125;</span><br><span class="line">console.log(twod);//<span class="comment">[ <span class="comment">[]</span>, <span class="comment">[]</span>, <span class="comment">[]</span>, <span class="comment">[]</span>, <span class="comment">[]</span> ]</span></span><br></pre></td></tr></table></figure>
+<h3 id="创建二维数组">创建二维数组</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> twod = [];</span><br><span class="line"><span class="keyword">var</span> rows = <span class="number">5</span>;</span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">var</span> i = <span class="number">0</span>; i &lt; rows; ++i) &#123;</span><br><span class="line">    twod[i] = [];</span><br><span class="line">&#125;</span><br><span class="line"><span class="built_in">console</span>.log(twod);<span class="comment">//[ [], [], [], [], [] ]</span></span><br></pre></td></tr></table></figure>
           <div class="post-more-link text-center">
             <a class="btn" href="/2015/05/29/javascript-note-02/#more">
               阅读全文 &raquo;
@@ -586,8 +750,8 @@
           
           
             
-              <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
-                JavaScript学习笔记-列表
+              <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
+                JavaScript学习笔记-数组
               </a>
             
           
@@ -616,8 +780,8 @@
           
             <span class="post-comments-count">
             &nbsp; | &nbsp;
-            <a href="/2015/05/29/javascript-note-04/#comments" >
-              <span class="post-comments-count ds-thread-count" data-thread-key="2015/05/29/javascript-note-04/"></span>
+            <a href="/2015/05/29/javascript-note-01/#comments" >
+              <span class="post-comments-count ds-thread-count" data-thread-key="2015/05/29/javascript-note-01/"></span>
             </a>
           </span>
           
@@ -632,175 +796,11 @@
 
       
         
-          <h4 id="JavaScript学习笔记-列表">JavaScript学习笔记-列表</h4><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">List</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.listSize = <span class="number">0</span>;</span><br><span class="line">  <span class="keyword">this</span>.pos = <span class="number">0</span>;</span><br><span class="line">  <span class="keyword">this</span>.dataStore = [];</span><br><span class="line">  <span class="keyword">this</span>.clear = clear;</span><br><span class="line">  <span class="keyword">this</span>.find = find;</span><br><span class="line">  <span class="keyword">this</span>.toString = toString;</span><br><span class="line">  <span class="keyword">this</span>.insert = insert;</span><br><span class="line">  <span class="keyword">this</span>.append = append;</span><br><span class="line">  <span class="keyword">this</span>.remove = remove;</span><br><span class="line">  <span class="keyword">this</span>.front = front;</span><br><span class="line">  <span class="keyword">this</span>.end = end;</span><br><span class="line">  <span class="keyword">this</span>.prev = prev;</span><br><span class="line">  <span class="keyword">this</span>.next = next;</span><br><span class="line">  <span class="keyword">this</span>.length = length;</span><br><span class="line">  <span class="keyword">this</span>.currPos = currPos;</span><br><span class="line">  <span class="keyword">this</span>.moveTo = moveTo;</span><br><span class="line">  <span class="keyword">this</span>.getElement = getElement;</span><br><span class="line">  <span class="keyword">this</span>.contains = contains;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">clear</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">delete</span> <span class="keyword">this</span>.dataStore;</span><br><span class="line">  <span class="keyword">this</span>.dataStore = [];</span><br><span class="line">  <span class="keyword">this</span>.listSize = <span class="keyword">this</span>.pos = <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">insert</span>(<span class="params">element,after</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">var</span> index = <span class="keyword">this</span>.find(element);</span><br><span class="line">  <span class="keyword">if</span>(index &gt; -<span class="number">1</span>)&#123;</span><br><span class="line">    <span class="keyword">this</span>.dataStore.splice(index + <span class="number">1</span>, <span class="number">0</span>, element);</span><br><span class="line">    ++<span class="keyword">this</span>.listSize;</span><br><span class="line">    <span class="keyword">return</span> <span class="literal">true</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">return</span> <span class="literal">false</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">front</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.pos = <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">end</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.pos = <span class="keyword">this</span>.listSize - <span class="number">1</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">prev</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  --<span class="keyword">this</span>.pos;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">next</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  ++<span class="keyword">this</span>.pos;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">currPos</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">this</span>.pos;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">moveTo</span>(<span class="params">position</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.pos = position;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">getElement</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">this</span>.dataStore[<span class="keyword">this</span>.pos];</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">contains</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">if</span>(<span class="keyword">this</span>.find(element) &gt; -<span class="number">1</span>)</span><br><span class="line">  &#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="literal">true</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">return</span> <span class="literal">false</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">find</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">this</span>.dataStore.indexOf(element);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">append</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">this</span>.dataStore[<span class="keyword">this</span>.listSize++] = element;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">remove</span>(<span class="params">element</span>)</span>&#123;</span><br><span class="line">  <span class="keyword">var</span> index = <span class="keyword">this</span>.find(element);</span><br><span class="line">  <span class="keyword">if</span>(index &gt; -<span class="number">1</span>)&#123;</span><br><span class="line">    <span class="keyword">this</span>.dataStore.splice(index,<span class="number">1</span>);</span><br><span class="line">    --<span class="keyword">this</span>.listSize;</span><br><span class="line">    <span class="keyword">return</span> <span class="literal">true</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">return</span> <span class="literal">false</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">length</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">this</span>.listSize;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">toString</span>(<span class="params"></span>)</span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">this</span>.dataStore;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> names = <span class="keyword">new</span> List();</span><br><span class="line">names.append(<span class="string">"Clayton"</span>);</span><br><span class="line">names.append(<span class="string">"Raymond"</span>);</span><br><span class="line">names.append(<span class="string">"Cynthia"</span>);</span><br><span class="line">names.append(<span class="string">"Jennifer"</span>);</span><br><span class="line">names.append(<span class="string">"Bryan"</span>);</span><br><span class="line">names.append(<span class="string">"Danny"</span>);</span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span>(names.front(); names.currPos() &lt; names.length(); names.next()) &#123;</span><br><span class="line">  <span class="built_in">console</span>.log(names.getElement());</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span>(names.end(); names.currPos() &gt;= <span class="number">0</span>; names.prev()) &#123;</span><br><span class="line">  <span class="built_in">console</span>.log(names.getElement());</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
-        
-      
-    </div>
-
-    <div class="post-footer">
-      
-
-      
-
-      
-      
-        <div class="post-eof"></div>
-      
-    </div>
-  </div>
-
-
-    
-      
-
-  <div class="post post-type-normal ">
-    <div class="post-header">
-
-      
-      
-        <h1 class="post-title">
-          
-          
-            
-              <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
-                JavaScript学习笔记-栈
-              </a>
-            
-          
-        </h1>
-      
-
-      <div class="post-meta">
-        <span class="post-time">
-          发表于 2015-05-29
-        </span>
-
-        
-          <span class="post-category">
-            &nbsp; | &nbsp; 分类于
-            
-              <a href="/categories/JavaScript/">JavaScript</a>
-
-              
-              
-
-            
-          </span>
-        
-
-        
-          
-            <span class="post-comments-count">
-            &nbsp; | &nbsp;
-            <a href="/2015/05/29/javascript-note-05/#comments" >
-              <span class="post-comments-count ds-thread-count" data-thread-key="2015/05/29/javascript-note-05/"></span>
-            </a>
-          </span>
-          
-        
-      </div>
-    </div>
-
-    <div class="post-body">
-
-      
-      
-
-      
-        
-          <h3 id="什么是栈">什么是栈</h3><p>栈是一种被称为后入先出(LIFO,last in first out)的数据结构.是一个特殊的列表,栈内的元素只能通过一端访问,这个端被称为栈顶.</p>
-<h3 id="如何定义栈">如何定义栈</h3><ul>
-<li>方法:将一个元素压入栈push(element)</li>
-<li>方法:将一个元素弹出栈pop()-&gt;element   被弹出的元素从栈中永久性删除</li>
-<li>方法:预览栈顶元素peek()-&gt;element         只返回栈顶元素,不删除该元素</li>
-<li>方法:清除栈内所有元素clear()   可以将top=0快速清空栈</li>
-<li>方法:栈内元素的个数:length()-&gt;number //可以使用top获取</li>
-<li>属性:栈顶元素位置number:top</li>
-<li>属性:栈内是否有元素boolean:empty  //可以使用top=0进行判断,</li>
-</ul>
+          <h3 id="什么是数组">什么是数组</h3><p>通常数组是一种线性结构,但是JavaScript中的数组是一个<strong>特殊的对象</strong>,其索引值在内部被转换成字符串处理。</p>
+<h3 id="创建数组">创建数组</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> array = [];   <span class="comment">//length = 0</span></span><br><span class="line"><span class="keyword">var</span> array = [<span class="number">10</span>]; <span class="comment">//length = 1</span></span><br><span class="line"><span class="keyword">var</span> array = [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>];<span class="comment">//length = 5</span></span><br><span class="line"><span class="keyword">var</span> array = <span class="keyword">new</span> <span class="built_in">Array</span>(); <span class="comment">//length = 0</span></span><br><span class="line"><span class="keyword">var</span> array = <span class="keyword">new</span> <span class="built_in">Array</span>(<span class="number">10</span>); <span class="comment">//length = 10</span></span><br><span class="line"><span class="keyword">var</span> array = <span class="keyword">new</span> <span class="built_in">Array</span>(<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">6</span>); <span class="comment">//length = 5</span></span><br></pre></td></tr></table></figure>
+<p><em>使用[]创建数组的效率高,因为字符少。</em></p>
           <div class="post-more-link text-center">
-            <a class="btn" href="/2015/05/29/javascript-note-05/#more">
-              阅读全文 &raquo;
-            </a>
-          </div>
-        
-      
-    </div>
-
-    <div class="post-footer">
-      
-
-      
-
-      
-      
-        <div class="post-eof"></div>
-      
-    </div>
-  </div>
-
-
-    
-      
-
-  <div class="post post-type-normal ">
-    <div class="post-header">
-
-      
-      
-        <h1 class="post-title">
-          
-          
-            
-              <a class="post-title-link" href="/2015/05/29/netmapping-01/">
-                分布式端口映射NetMapping的设计与实现
-              </a>
-            
-          
-        </h1>
-      
-
-      <div class="post-meta">
-        <span class="post-time">
-          发表于 2015-05-29
-        </span>
-
-        
-          <span class="post-category">
-            &nbsp; | &nbsp; 分类于
-            
-              <a href="/categories/Golang/">Golang</a>
-
-              
-              
-
-            
-          </span>
-        
-
-        
-          
-            <span class="post-comments-count">
-            &nbsp; | &nbsp;
-            <a href="/2015/05/29/netmapping-01/#comments" >
-              <span class="post-comments-count ds-thread-count" data-thread-key="2015/05/29/netmapping-01/"></span>
-            </a>
-          </span>
-          
-        
-      </div>
-    </div>
-
-    <div class="post-body">
-
-      
-      
-
-      
-        
-          <h4 id="架构设计">架构设计</h4><p><img src="/images/netmapping-01/NetMapping.png" alt="这是一张图片"><br><img src="/images/netmapping-01/UseCase.png" alt="这是一张图片"><br>
-          <div class="post-more-link text-center">
-            <a class="btn" href="/2015/05/29/netmapping-01/#more">
+            <a class="btn" href="/2015/05/29/javascript-note-01/#more">
               阅读全文 &raquo;
             </a>
           </div>
@@ -900,6 +900,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/tags/Golang/index.html b/tags/Golang/index.html
index 13bd9e8..fc162f2 100644
--- a/tags/Golang/index.html
+++ b/tags/Golang/index.html
@@ -271,6 +271,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/tags/JavaScript/index.html b/tags/JavaScript/index.html
index a69f5d5..2bb0d47 100644
--- a/tags/JavaScript/index.html
+++ b/tags/JavaScript/index.html
@@ -178,8 +178,30 @@
 
       <div class="post-title">
         
-            <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
-              JavaScript学习笔记-数组
+            <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
+              JavaScript学习笔记-栈
+            </a>
+        
+      </div>
+
+      <div class="post-meta">
+        <span class="post-time"> 05-29 </span>
+      </div>
+
+    </div>
+  </div>
+
+
+    
+      
+
+  <div class="post post-type-normal">
+    <div class="post-header">
+
+      <div class="post-title">
+        
+            <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
+              JavaScript学习笔记-列表
             </a>
         
       </div>
@@ -244,30 +266,8 @@
 
       <div class="post-title">
         
-            <a class="post-title-link" href="/2015/05/29/javascript-note-04/">
-              JavaScript学习笔记-列表
-            </a>
-        
-      </div>
-
-      <div class="post-meta">
-        <span class="post-time"> 05-29 </span>
-      </div>
-
-    </div>
-  </div>
-
-
-    
-      
-
-  <div class="post post-type-normal">
-    <div class="post-header">
-
-      <div class="post-title">
-        
-            <a class="post-title-link" href="/2015/05/29/javascript-note-05/">
-              JavaScript学习笔记-栈
+            <a class="post-title-link" href="/2015/05/29/javascript-note-01/">
+              JavaScript学习笔记-数组
             </a>
         
       </div>
@@ -359,6 +359,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/tags/coredump/index.html b/tags/coredump/index.html
index b6ef81b..acba6ab 100644
--- a/tags/coredump/index.html
+++ b/tags/coredump/index.html
@@ -293,6 +293,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>
 
       
diff --git a/tags/index.html b/tags/index.html
index 82de21f..50048cb 100644
--- a/tags/index.html
+++ b/tags/index.html
@@ -257,6 +257,10 @@
         
         
 
+        <div class="links-of-author motion-element">
+          
+        </div>
+        
       </div>