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

<channel>
	<title>简单生活 -- Kevin Yang的博客 &#187; 异常处理机制</title>
	<atom:link href="http://www.imkevinyang.com/tags/%e5%bc%82%e5%b8%b8%e5%a4%84%e7%90%86%e6%9c%ba%e5%88%b6/feed" rel="self" type="application/rss+xml" />
	<link>http://www.imkevinyang.com</link>
	<description>It&#039;s all about sharing</description>
	<lastBuildDate>Sun, 05 Feb 2012 15:37:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>解析IE中的Javascript Error对象</title>
		<link>http://www.imkevinyang.com/2010/01/%e8%a7%a3%e6%9e%90ie%e4%b8%ad%e7%9a%84javascript-error%e5%af%b9%e8%b1%a1.html</link>
		<comments>http://www.imkevinyang.com/2010/01/%e8%a7%a3%e6%9e%90ie%e4%b8%ad%e7%9a%84javascript-error%e5%af%b9%e8%b1%a1.html#comments</comments>
		<pubDate>Sun, 17 Jan 2010 06:31:00 +0000</pubDate>
		<dc:creator>Kevin Yang</dc:creator>
				<category><![CDATA[Web传统技术]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[异常处理机制]]></category>

		<guid isPermaLink="false">http://www.imkevinyang.com/2010/01/%e8%a7%a3%e6%9e%90ie%e4%b8%ad%e7%9a%84javascript-error%e5%af%b9%e8%b1%a1.html</guid>
		<description><![CDATA[<p>之前写过一篇<a title="Javascript获取出错代码所在行数及文件名" href="http://www.imkevinyang.com/2009/05/javascript%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%87%BA%E9%94%99%E4%BB%A3%E7%A0%81%E6%89%80%E5%9C%A8%E6%96%87%E4%BB%B6%E5%8F%8A%E8%A1%8C%E6%95%B0.html" target="_blank">文章</a>，提到怎么在各个浏览器下返回执行错误的Javascript代码所在的行数以及文件名。其中在IE下，如果你使用了try-catch，那么当出现异常的时候，浏览器会传递一个Error对象。</p>
<pre class="csharpcode"><span class="kwrd">&#60;</span><span class="html">script</span><span class="kwrd">&#62;</span>
    <span class="kwrd">try</span>{
        sldfj
    }<span class="kwrd">catch</span>(e){
        <span class="kwrd">for</span>(<span class="kwrd">var</span> p <span class="kwrd">in</span> e){
            docu&#8230;</pre>]]></description>
			<content:encoded><![CDATA[<p>之前写过一篇<a title="Javascript获取出错代码所在行数及文件名" href="http://www.imkevinyang.com/2009/05/javascript%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%87%BA%E9%94%99%E4%BB%A3%E7%A0%81%E6%89%80%E5%9C%A8%E6%96%87%E4%BB%B6%E5%8F%8A%E8%A1%8C%E6%95%B0.html" target="_blank">文章</a>，提到怎么在各个浏览器下返回执行错误的Javascript代码所在的行数以及文件名。其中在IE下，如果你使用了try-catch，那么当出现异常的时候，浏览器会传递一个Error对象。</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">script</span><span class="kwrd">&gt;</span>
    <span class="kwrd">try</span>{
        sldfj
    }<span class="kwrd">catch</span>(e){
        <span class="kwrd">for</span>(<span class="kwrd">var</span> p <span class="kwrd">in</span> e){
            document.writeln(p + <span class="str">&quot;=&quot;</span> + e[p]);
        }
    }
<span class="kwrd">&lt;/</span><span class="html">script</span><span class="kwrd">&gt;</span></pre>
<p>输出：name=TypeError message='sldfj' 未定义 number=-2146823279 description='sldfj' 未定义</p>
<p>其中的number属性是一个整数，表示的是错误码，但这并不是真正的错误码，我们需要先将其做一下转换</p>
<pre class="csharpcode"><span class="kwrd">var</span> errCode = err.number&amp; x0FFFF; </pre>
<p>这得到真正的错误码，例如上述的-2146823279 转换之后就得到5009。有了这个错误码之后，我们可以到<a href="http://msdn.microsoft.com/en-us/library/1dk3k160(VS.85).aspx">http://msdn.microsoft.com/en-us/library/1dk3k160(VS.85).aspx</a>微软msdn上查找此错误码对应的。5009对应的错误是Undefined identifier。</p>
<p align="right">——<a href="http://www.imkevinyang.com/"><em><strong>Kevin Yang</strong></em></a></p>

	标签：<a href="http://www.imkevinyang.com/tags/error" title="Error" rel="tag">Error</a>, <a href="http://www.imkevinyang.com/tags/ie" title="IE" rel="tag">IE</a>, <a href="http://www.imkevinyang.com/tags/javascript" title="Javascript" rel="tag">Javascript</a>, <a href="http://www.imkevinyang.com/categories/techarticles/web%e4%bc%a0%e7%bb%9f%e6%8a%80%e6%9c%af" title="Web传统技术" rel="tag">Web传统技术</a>, <a href="http://www.imkevinyang.com/tags/%e5%bc%82%e5%b8%b8%e5%a4%84%e7%90%86%e6%9c%ba%e5%88%b6" title="异常处理机制" rel="tag">异常处理机制</a><br />

	<h4 style="background-color:#3B3B3B;border-bottom:2px groove gray;color:#F2F2F2;margin-top:20px;padding:6px 6px 6px 15px;margin:20px 0px 0px 0px">你可能对下面的文章感兴趣</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.imkevinyang.com/2009/11/button%e6%a0%87%e7%ad%be%e9%bc%a0%e6%a0%87%e7%82%b9%e5%87%bb%e4%ba%8b%e4%bb%b6%e7%9a%84%e8%a7%a6%e5%8f%91%e6%ba%90%e9%97%ae%e9%a2%98.html" title="Button标签鼠标点击事件的触发源问题 (2009/11/27)">Button标签鼠标点击事件的触发源问题</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/03/ie%e4%b8%ad%e4%bd%bf%e7%94%a8windowopen%e6%89%93%e5%bc%80%e6%96%b0%e7%aa%97%e5%8f%a3%e6%97%b6%e6%97%a0%e6%b3%95%e8%8e%b7%e5%8f%96referrer%e5%af%b9%e8%b1%a1.html" title="IE中使用window.open打开新窗口时无法获取Referrer对象 (2009/03/07)">IE中使用window.open打开新窗口时无法获取Referrer对象</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/09/ie%e6%97%a0%e6%b3%95%e8%ae%be%e7%bd%ae%e7%9f%ad%e5%9f%9f%e5%90%8d%e4%b8%8bcookie.html" title="IE无法设置短域名下Cookie (2010/09/06)">IE无法设置短域名下Cookie</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/07/javajs%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f%e5%8c%b9%e9%85%8d%e5%b5%8c%e5%a5%97html%e6%a0%87%e7%ad%be.html" title="Java/Js如何使用正则表达式匹配嵌套Html标签 (2010/07/30)">Java/Js如何使用正则表达式匹配嵌套Html标签</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/07/javascript-%e4%b8%ad%e7%9a%84false%e9%9b%b6%e5%80%bcnullundefined%e5%92%8c%e7%a9%ba%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%af%b9%e8%b1%a1.html" title="Javascript 中的false,零值,null,undefined和空字符串对象 (2009/07/07)">Javascript 中的false,零值,null,undefined和空字符串对象</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/05/javascript%e4%b8%ad%e8%8e%b7%e5%8f%96%e5%87%ba%e9%94%99%e4%bb%a3%e7%a0%81%e6%89%80%e5%9c%a8%e6%96%87%e4%bb%b6%e5%8f%8a%e8%a1%8c%e6%95%b0.html" title="Javascript中获取出错代码所在文件及行数 (2009/05/18)">Javascript中获取出错代码所在文件及行数</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/04/javascript%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%93%88%e5%b8%8c%e5%87%bd%e6%95%b0.html" title="Javascript字符串哈希函数 (2009/04/11)">Javascript字符串哈希函数</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/06/javascript%e6%93%8d%e7%ba%b5cookie.html" title="Javascript操纵Cookie (2009/06/11)">Javascript操纵Cookie</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/05/%e4%b8%ba%e4%bb%80%e4%b9%88iis77-5%e7%9a%84gzip%e4%b8%8d%e8%b5%b7%e4%bd%9c%e7%94%a8.html" title="为什么IIS7/7.5的Gzip不起作用 (2010/05/08)">为什么IIS7/7.5的Gzip不起作用</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/09/%e4%bd%bf%e7%94%a8%e7%9b%b8%e5%af%b9url%e6%97%a0%e7%bc%9d%e5%88%87%e6%8d%a2http-https.html" title="使用相对Url无缝切换HTTP-HTTPS (2009/09/18)">使用相对Url无缝切换HTTP-HTTPS</a> </li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.imkevinyang.com/2010/01/%e8%a7%a3%e6%9e%90ie%e4%b8%ad%e7%9a%84javascript-error%e5%af%b9%e8%b1%a1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript中获取出错代码所在文件及行数</title>
		<link>http://www.imkevinyang.com/2009/05/javascript%e4%b8%ad%e8%8e%b7%e5%8f%96%e5%87%ba%e9%94%99%e4%bb%a3%e7%a0%81%e6%89%80%e5%9c%a8%e6%96%87%e4%bb%b6%e5%8f%8a%e8%a1%8c%e6%95%b0.html</link>
		<comments>http://www.imkevinyang.com/2009/05/javascript%e4%b8%ad%e8%8e%b7%e5%8f%96%e5%87%ba%e9%94%99%e4%bb%a3%e7%a0%81%e6%89%80%e5%9c%a8%e6%96%87%e4%bb%b6%e5%8f%8a%e8%a1%8c%e6%95%b0.html#comments</comments>
		<pubDate>Sun, 17 May 2009 16:00:50 +0000</pubDate>
		<dc:creator>Kevin Yang</dc:creator>
				<category><![CDATA[Web传统技术]]></category>
		<category><![CDATA[代码库]]></category>
		<category><![CDATA[技术随笔]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[出错文件名]]></category>
		<category><![CDATA[出错行数]]></category>
		<category><![CDATA[异常]]></category>
		<category><![CDATA[异常处理机制]]></category>
		<category><![CDATA[错误]]></category>

		<guid isPermaLink="false">http://www.imkevinyang.com/2009/05/javascript%e4%b8%ad%e8%8e%b7%e5%8f%96%e5%87%ba%e9%94%99%e4%bb%a3%e7%a0%81%e6%89%80%e5%9c%a8%e6%96%87%e4%bb%b6%e5%8f%8a%e8%a1%8c%e6%95%b0.html</guid>
		<description><![CDATA[<p>之前在做一个Javascript的日志控制台功能模块，希望能够在Javascript代码出错时捕获此错误，并将出错的文件及相应的行数打印到控制台并汇报给服务器。原先使用的是try-catch的方式，在catch语句中，我们会收到一个Error对象（我们也可以抛出一个自定义异常对象）。Firefox中&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>之前在做一个Javascript的日志控制台功能模块，希望能够在Javascript代码出错时捕获此错误，并将出错的文件及相应的行数打印到控制台并汇报给服务器。原先使用的是try-catch的方式，在catch语句中，我们会收到一个Error对象（我们也可以抛出一个自定义异常对象）。Firefox中的Error对象拥有如下属性：</p>
<ul>
<li><b>message&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 错误提示信息</li>
<li><b>fileName&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 表示出错代码所在文件</li>
<li><b>lineNumber&#160;&#160;&#160;&#160;&#160; </b>—— 出错代码所在行数</li>
<li><b>stack&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 出错堆栈信息</li>
<li><b>name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 异常对象名/类型</li>
</ul>
<p>但是在IE下，Error对象只有如下属性：</p>
<ul>
<li><b>name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 异常对象名/类型，和Firefox中显示的名称可能不同</li>
<li><b>message&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 错误提示信息</li>
<li><b>description&#160;&#160;&#160;&#160;&#160; </b>—— 和message属性相同</li>
<li><b>number&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— ErrorCode，错误代码，对于普通开发人员来说基本没意义</li>
</ul>
<p>也就是说在IE下我们无法获得最希望得到的错误代码所在文件名及出错行数的信息。后来在学校论坛求教之后知道了window（全局对象）下有一个onerror的对象。这个对象或者说window的属性绑定的是一个错误处理函数。脚本中任何未被捕获的错误最终都会扩散到window这一层，然后被onerror绑定的处理函数所处理。查了一下相关文档，发现绑定的错误处理函数会接受到三个参数：</p>
<pre class="csharpcode"><span class="kwrd">function</span> onError(message,url,line){}</pre>
<p>非常欣慰的是，这个机制兼容IE和Firefox。</p>
<p>下面举一个例子：</p>
<pre class="csharpcode"><span class="kwrd">function</span> doSomething(){
    <span class="kwrd">var</span> lastErrorHandler = window.onerror;
    window.onerror = <span class="kwrd">function</span>(message,url,line){
        <span class="rem">// 汇报错误</span>
        alert(<span class="str">&quot;执行&quot;</span> + url + <span class="str">&quot;文件中的第&quot;</span> + line + <span class="str">&quot;行代码出错，错误信息：&quot;</span> + message);
        window.onerror = lastErrorHandler;
        <span class="rem">// 不希望此错误继续扩散</span>
        <span class="kwrd">return</span> <span class="kwrd">true</span>;
    };
    <span class="rem">// 不小心出错了...</span>
    sldfjlskdjflj;

    window.onerror = lastErrorHandler;
}
doSomething();</pre>
<p><img style="border-right-width: 0px; margin: 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.imkevinyang.com/wp-content/uploads/2009/05/image-thumb2.png" width="595" height="113" /> </p>
<p>这里之所以没用attachEvent的方式，是因为detach比较不方便。如果希望此错误处理变成全局的，那么可以使用attachEvent（Firefox下是addEventListener）的方式。 </p>
<p>需要注意，Safari（Chrome使用的也是一样的内核）和Opera都不支持此机制，这两个核心的浏览器都不支持全局的error事件，因此没法使用这种方式来捕获异常信息，只能使用try-catch的方式。</p>
<p>试验了一下，在Safari中的Error对象拥有如下属性：</p>
<ul>
<li><b>message&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 错误提示信息</li>
<li><b>line&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 出错代码所在行数</li>
<li><b>sourceId&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 一个数字，不明白什么意思</li>
<li><strong>sourceURL&#160;&#160;&#160;&#160;&#160;&#160; ——</strong> 表示出错代码所在文件</li>
<li><strong>name</strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; —— 异常对象名/类型</li>
</ul>
<p>Opera下的Error对象拥有如下属性：</p>
<ul>
<li><b>message&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 错误提示信息</li>
<li><strong>opera#sourceloc&#160;&#160;&#160; </strong>—— 出错代码所在行数</li>
<li><b>stacktrace&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b>—— 出错堆栈信息 </li>
</ul>
<p>这两个浏览器中的Error对象已经提供了足够的信息给我们调试使用了。下面要做的就是把这两种方式结合起来，使之在不同浏览器下都能很好的汇报这些错误。</p>
<p>下面这段代码封装了在不同浏览器之上汇报异常的功能：</p>
<pre class="csharpcode">&lt;script type=”text/javascript”&gt;
<span class="kwrd">function</span> reportError(err){
    <span class="kwrd">var</span> errMsg = [];
    <span class="kwrd">for</span>(<span class="kwrd">var</span> p <span class="kwrd">in</span> err){
        <span class="kwrd">if</span>(err.hasOwnProperty(p)){
            errMsg.push(p + <span class="str">&quot;=&quot;</span> + err[p]);
        }
    }
    alert(errMsg.join(<span class="str">&quot;\n&quot;</span>));
}
<span class="kwrd">function</span> doSomething(){
    <span class="kwrd">var</span> lastErrorHandler = window.onerror;
    window.onerror = <span class="kwrd">function</span>(message, url, line){
        <span class="rem">// 汇报错误</span>
        reportError({
            message: message,
            url: url,
            line: line
        });
        window.onerror = lastErrorHandler;
        <span class="rem">// 不希望此错误继续扩散</span>
     <span class="kwrd">return</span> <span class="kwrd">true</span>;
    }

    <span class="rem">// 不小心出错了...</span>
    sldfjlskdjflj;

    window.onerror = lastErrorHandler;
}
<span class="kwrd">try</span>{
    <span class="rem">// 执行可能出错的代码</span>
   doSomething();
}<span class="kwrd">catch</span>(e){
    <span class="kwrd">if</span>(<span class="str">&quot;\v&quot;</span>==<span class="str">&quot;v&quot;</span>){
        <span class="rem">// 对于IE直接让此错误扩散到最外层</span>
        <span class="kwrd">throw</span> e;
    }<span class="kwrd">else</span>{
        <span class="rem">// 对于其他任意浏览器直接汇报此异常对象</span>
        reportError(e);
    }
}
&lt;/script&gt;</pre>
<p>&#160;</p>
<p align="right">—— <a href="http://www.imkevinyang.com">Kevin Yang</a></p>

	标签：<a href="http://www.imkevinyang.com/tags/javascript" title="Javascript" rel="tag">Javascript</a>, <a href="http://www.imkevinyang.com/categories/techarticles/web%e4%bc%a0%e7%bb%9f%e6%8a%80%e6%9c%af" title="Web传统技术" rel="tag">Web传统技术</a>, <a href="http://www.imkevinyang.com/categories/techarticles/codebase" title="代码库" rel="tag">代码库</a>, <a href="http://www.imkevinyang.com/tags/%e5%87%ba%e9%94%99%e6%96%87%e4%bb%b6%e5%90%8d" title="出错文件名" rel="tag">出错文件名</a>, <a href="http://www.imkevinyang.com/tags/%e5%87%ba%e9%94%99%e8%a1%8c%e6%95%b0" title="出错行数" rel="tag">出错行数</a>, <a href="http://www.imkevinyang.com/tags/%e5%bc%82%e5%b8%b8" title="异常" rel="tag">异常</a>, <a href="http://www.imkevinyang.com/tags/%e5%bc%82%e5%b8%b8%e5%a4%84%e7%90%86%e6%9c%ba%e5%88%b6" title="异常处理机制" rel="tag">异常处理机制</a>, <a href="http://www.imkevinyang.com/categories/techarticles" title="技术随笔" rel="tag">技术随笔</a>, <a href="http://www.imkevinyang.com/tags/%e9%94%99%e8%af%af" title="错误" rel="tag">错误</a><br />

	<h4 style="background-color:#3B3B3B;border-bottom:2px groove gray;color:#F2F2F2;margin-top:20px;padding:6px 6px 6px 15px;margin:20px 0px 0px 0px">你可能对下面的文章感兴趣</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.imkevinyang.com/2009/11/button%e6%a0%87%e7%ad%be%e9%bc%a0%e6%a0%87%e7%82%b9%e5%87%bb%e4%ba%8b%e4%bb%b6%e7%9a%84%e8%a7%a6%e5%8f%91%e6%ba%90%e9%97%ae%e9%a2%98.html" title="Button标签鼠标点击事件的触发源问题 (2009/11/27)">Button标签鼠标点击事件的触发源问题</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/03/ie%e4%b8%ad%e4%bd%bf%e7%94%a8windowopen%e6%89%93%e5%bc%80%e6%96%b0%e7%aa%97%e5%8f%a3%e6%97%b6%e6%97%a0%e6%b3%95%e8%8e%b7%e5%8f%96referrer%e5%af%b9%e8%b1%a1.html" title="IE中使用window.open打开新窗口时无法获取Referrer对象 (2009/03/07)">IE中使用window.open打开新窗口时无法获取Referrer对象</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/07/javajs%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f%e5%8c%b9%e9%85%8d%e5%b5%8c%e5%a5%97html%e6%a0%87%e7%ad%be.html" title="Java/Js如何使用正则表达式匹配嵌套Html标签 (2010/07/30)">Java/Js如何使用正则表达式匹配嵌套Html标签</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/07/javascript-%e4%b8%ad%e7%9a%84false%e9%9b%b6%e5%80%bcnullundefined%e5%92%8c%e7%a9%ba%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%af%b9%e8%b1%a1.html" title="Javascript 中的false,零值,null,undefined和空字符串对象 (2009/07/07)">Javascript 中的false,零值,null,undefined和空字符串对象</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/04/javascript%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%93%88%e5%b8%8c%e5%87%bd%e6%95%b0.html" title="Javascript字符串哈希函数 (2009/04/11)">Javascript字符串哈希函数</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/06/javascript%e6%93%8d%e7%ba%b5cookie.html" title="Javascript操纵Cookie (2009/06/11)">Javascript操纵Cookie</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/09/visual-studio%e5%b0%8f%e8%b4%b4%e5%a3%ab%e5%8a%a0%e4%ba%86try-catch%e4%b9%9f%e8%83%bd%e8%87%aa%e5%8a%a8%e5%ae%9a%e4%bd%8d%e5%88%b0%e5%bc%82%e5%b8%b8%e4%bb%a3%e7%a0%81.html" title="Visual Studio小贴士&mdash;&mdash;加了Try-Catch也能自动定位到异常代码 (2009/09/18)">Visual Studio小贴士&mdash;&mdash;加了Try-Catch也能自动定位到异常代码</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/05/%e4%b8%ba%e4%bb%80%e4%b9%88iis77-5%e7%9a%84gzip%e4%b8%8d%e8%b5%b7%e4%bd%9c%e7%94%a8.html" title="为什么IIS7/7.5的Gzip不起作用 (2010/05/08)">为什么IIS7/7.5的Gzip不起作用</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/09/%e4%bd%bf%e7%94%a8%e7%9b%b8%e5%af%b9url%e6%97%a0%e7%bc%9d%e5%88%87%e6%8d%a2http-https.html" title="使用相对Url无缝切换HTTP-HTTPS (2009/09/18)">使用相对Url无缝切换HTTP-HTTPS</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/07/%e5%87%a0%e4%b8%aa%e6%9c%89%e8%b6%a3%e7%9a%84javascript-hack.html" title="几个有趣的Javascript Hack (2010/07/23)">几个有趣的Javascript Hack</a> </li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.imkevinyang.com/2009/05/javascript%e4%b8%ad%e8%8e%b7%e5%8f%96%e5%87%ba%e9%94%99%e4%bb%a3%e7%a0%81%e6%89%80%e5%9c%a8%e6%96%87%e4%bb%b6%e5%8f%8a%e8%a1%8c%e6%95%b0.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: www.imkevinyang.com @ 2012-02-09 11:10:02 -->
